从辅助线程在主线程上执行App Delegate方法

时间:2010-08-23 02:28:38

标签: iphone multithreading

我有一个2线程的Iphone应用程序。一个是听服务器,另一个是UIKit,OpenGl。

我需要运行一个方法来更新来自辅助线程的视图,该辅助线程监听处理视图的主线程上的服务器,所以我使用了

performSelectorOnMainThread:@selector"createGuessingView" withObject:nil waitUntilDone:YES

但由于某种原因,该方法永远不会被执行。在方法的开头放置断点或printf表明它从未被调用过。我真的很难过。我已经在同一个程序中使用performselectoronmainthread来更新文本字段,并且它可以完美地工作。

编辑:

想出来:) 问题是我在使用performSelectorOnMainThread的对象是在主线程中初始化(甚至分配)对象之前由此线程设置的。因此,引用指向null,并且选择器未被识别。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

不应该是:

@selector(createGuessingView)

没有引号。

-

编辑(回应评论)

你方法的签名是什么?如果是:

- (void)createGuessingView:(id)something

然后你应该记住冒号,就像@selector(createGuessingView :)

一样