From 3347d7fa4825d6eaab9d6af8e8cb7fa471922f18 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 27 Feb 2014 20:56:08 -0500 Subject: [PATCH] Wrote helper functions for objc_getClass() and sel_getUid(). --- darwintest/runtimetest.go | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/darwintest/runtimetest.go b/darwintest/runtimetest.go index 7a36fb7..04a10c1 100644 --- a/darwintest/runtimetest.go +++ b/darwintest/runtimetest.go @@ -16,24 +16,31 @@ import ( // id objc_msgSend_strarg(id obj, SEL sel, char *a) { return objc_msgSend(obj, sel, a); } import "C" +func objc_getClass(class string) C.id { + cclass := C.CString(class) + defer C.free(unsafe.Pointer(cclass)) + + return C.objc_getClass(cclass) +} + +func sel_getUid(sel string) C.SEL { + csel := C.CString(sel) + defer C.free(unsafe.Pointer(csel)) + + return C.sel_getUid(csel) +} + func main() { - _NSString := C.CString("NSString") - defer C.free(unsafe.Pointer(_NSString)) - _stringWithUTF8String := C.CString("stringWithUTF8String:") - defer C.free(unsafe.Pointer(_stringWithUTF8String)) - _UTF8String := C.CString("UTF8String") - defer C.free(unsafe.Pointer(_UTF8String)) _hello := C.CString("hello, world\n") defer C.free(unsafe.Pointer(_hello)) - NSString := C.objc_getClass(_NSString) + NSString := objc_getClass("NSString") stringWithUTF8String := - C.sel_getUid(_stringWithUTF8String) + sel_getUid("stringWithUTF8String:") str := C.objc_msgSend_strarg(NSString, stringWithUTF8String, _hello) - UTF8String := - C.sel_getUid(_UTF8String) + UTF8String := sel_getUid("UTF8String") res := C.objc_msgSend_noargs(str, UTF8String) cres := (*C.char)(unsafe.Pointer(res))