2010-08-23 75 views
0

我有一个2线程的Iphone应用程序。一个在听服务器,另一个在做UIKit,OpenGl的东西。在辅助线程的主线程上执行App Delegate方法

我需要运行更新从二级螺纹这就是听来处理,所以我用

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

,但由于某些原因,该图的主线程中的服务器视图的方法,此方法不会变执行。在方法的开头放置一个断点或一个printf表明它从不调用。我真的很难过。我在同一个程序中使用了performselectoronmainthread来更新文本字段并且工作完美无瑕。

编辑:

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

感谢您的帮助

+0

你确定的接收器中调用performSelectorOnMainThread不是零? – imaginaryboy 2010-08-23 02:51:09

回答

2

难道不应该是:

@selector(createGuessingView) 

无报价。

-

EDIT(在响应评论)

什么为您的方法的签名?如果它是:

- (void)createGuessingView:(id)something 

,那么你应该记住结肠,在@selector(createGuessingView :)

+0

噢,对不起,这就是我有什么,我只是复制它错了, 任何其他的想法? – MEURSAULT 2010-08-23 02:35:26

+0

的签名是 - (void)createGuessingView;不带参数 – MEURSAULT 2010-08-23 02:47:22

+0

您是否在具有createGuessingView方法的对象实例上调用performSelectorOnMainThread方法? – 2010-08-23 02:59:26

相关问题