2 yue1liang1chuan yue1liang1chuan 于 2013.02.18 13:38 提问

直接字符串作为参数传递

objc_msgSend()字符串作为参数传递。

想要做一个ios中使用C的例子,现在写了显示视图的代码,其他的运行正确,但是不知道怎么传递直接文本到UILabelUILable已经创建了对象。

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:"),?); //这行传递字符串

1个回答

zj382561388
zj382561388   2015.08.25 11:43

楼主 这是什么写法,通过xcode 中的C级 api 来生成界面 么

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!