调用选择器不会在单独的线程中调用委托方法

时间:2012-06-15 12:19:32

标签: objective-c ios

[NSThread detachNewThreadSelector:@selector(colourChange) toTarget:del withObject:nil];

这应该调用类'delegate(del)中的colourChange方法,但它没有?

我检查了del!= nil,使用调试器检查了它指向委托。

解决了

dispatch_async(dispatch_get_global_queue(0, 0), 
                           ^{
                               [del colourChange]; 
                          });

查看下面标记答案中的链接,了解更多详情。

2 个答案:

答案 0 :(得分:0)

据我所知(来自核心数据),可以从创建它的线程中调用方法。This问题(带答案)可能对你有用

答案 1 :(得分:0)

您的方法签名错误。它必须采用一个参数(见documentation)。

  

要发送给目标的消息的选择器。这个选择器必须   只取一个参数,但不能有返回值。