0

我正在开发一个静态库。我正在使用来自这里的源代码在库中使用反向身份验证。在这个库中,以下内容在 iOS5 中崩溃,但在 iOS6 中运行良好。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

如果我们如下更改该行,它在所有操作系统版本中都可以正常工作。

dispatch_async(dispatch_get_main_queue()

这种改变会在所有情况下都有效还是会产生任何问题?请指教,谢谢。

4

1 回答 1

2

如果不能看到您的代码就很难判断,但这听起来就像您正在向在该块之前创建的对象发送一条没有 GCD 块的消息,并且该对象在该块执行时不再存在。我建议将其设置为保留它的属性,这样 ARC 就不会收集它。

iOS版本之间的差异可能是由于模拟器和设备之间的差异(你说你在设备上运行iOS 6版本,在模拟器上运行5)。

于 2013-01-07T14:46:56.120 回答