问题描述
- 直接字符串作为参数传递
-
objc_msgSend()
字符串作为参数传递。想要做一个ios中使用C的例子,现在写了显示视图的代码,其他的运行正确,但是不知道怎么传递直接文本到
UILabel
。UILable
已经创建了对象。BOOL AppDel_didFinishLaunching(struct AppDel *self, SEL _cmd, void *application, void *options) { self->window = objc_msgSend(objc_getClass("UIWindow"), sel_getUid("alloc")); self->window = objc_msgSend(self->window, sel_getUid("initWithFrame:"), (struct CGRect) { 0, 0, 320, 480 }); id viewController = objc_msgSend(objc_msgSend(objc_getClass("UIViewController"), sel_getUid("alloc")), sel_getUid("init")); id view = objc_msgSend(objc_msgSend(objc_getClass("View"), sel_getUid("alloc")), sel_getUid("initWithFrame:"), (struct CGRect) { 0, 0, 320, 480 }); id label=objc_msgSend(objc_msgSend(objc_getClass("UILabel"), sel_getUid("alloc")), sel_getUid("initWithFrame:"),(struct CGRect){20,20,200,30}); objc_msgSend(label, sel_getUid("setBackgroundColor:"),objc_msgSend(objc_getClass("UIColor"), sel_getUid("greenColor"))); objc_msgSend(label, sel_getUid("setText:"),?); //here how to set text by direct string? objc_msgSend(view, sel_getUid("addSubview:"),label); objc_msgSend(objc_msgSend(viewController, sel_getUid("view")), sel_getUid("addSubview:"), view); objc_msgSend(self->window, sel_getUid("setRootViewController:"), viewController); objc_msgSend(self->window, sel_getUid("makeKeyAndVisible")); return YES; }
objc_msgSend(label, sel_getUid("setText:"),?); //这行传递字符串
解决方案
楼主 这是什么写法,通过xcode 中的C级 api 来生成界面 么
时间: 2024-09-24 12:40:32