撕裂我的头发在这,任何想法或建议将不胜感激。performSelectorOnMainThread不会执行
我有一个对象从子线程调用performSelectorOnMainThread:withObject:waitUntilDone:
本身。这95%的时间工作正常。从iOS beta版开始,现在进入发行版,每隔一段时间,设备将拒绝执行performSelectorOnMainThread:withObject:waitUntilDone:
调用...没有错误消息,它不会崩溃,我不能让设备进入“失败“但一旦它在那里,它会继续失败,直到我删除并重新安装应用程序,或强制它退出,然后调整它的位置服务补贴,然后再次启动它,然后再次将其位置服务重新调整为正常。 ..重新启动设备不能解决它。重新安装而不先删除不会修复它。这很奇怪....我知道它大部分时间工作,因为大多数设备没有问题,但是有些设备会有规律地失败(每隔3或4天)。我知道performSelectorOnMainThread:withObject:waitUntilDone:
并不是在调用它应该的,因为我现在有一个失败的设备,并且我已经将NSLog放入了应该调用的方法。它功能正常,但在失败的设备上,当使用performSelectorOnMainThread:withObject:waitUntilDone:
调用该方法时,NSLog显示它没有运行...
这开始发生在iOS 5 beta版本上,并且在发布时会发生。它经常发生在我的两台设备上,但是我没有亲自测试过其他10台设备。我认为这只是我的设备在测试版中的一些问题,但它发生在我从未接触过测试版的全新4S以及用户的一款iPad 2上(不在我的iPad 2上)。
我真的不知道去哪里看。我告诉它执行,它通常在几乎所有设备上执行,但同一行在某些情况下没有响应并且没有错误等...
是你有任何机会使用CoreData?我有类似的问题。真正发生的是线程死锁,等待使用CoreData执行读取操作,而另一个线程正在尝试写入。 – picciano
@picciano你是如何解决这个问题的?我遇到同样的问题,无法弄清楚我需要做什么来解决僵局。 –