有人说在主线程中必须使用UIApplication,但我没有在Apple的文档中看到这一点。 那么有人可以告诉我,如果在单独的线程中使用UIApplication是否安全?如果它不安全,在哪里记录?iOS:正在调用主线程安全以外线程中的UIApplication方法吗?
编辑: 我正在关注那些操纵本地通知的方法。
有人说在主线程中必须使用UIApplication,但我没有在Apple的文档中看到这一点。 那么有人可以告诉我,如果在单独的线程中使用UIApplication是否安全?如果它不安全,在哪里记录?iOS:正在调用主线程安全以外线程中的UIApplication方法吗?
编辑: 我正在关注那些操纵本地通知的方法。
大多数UIKit类不是线程安全的。在WWDC等已经详细讨论过这个问题,但没有很好的文档记录。我能找到的最好的是TN2109,它反复讨论如何从辅助线程调用UIKit是不被允许的。
请注意,此规则有许多记录的例外情况。例如,UIApplication上的beginBackgroundTaskWithExpirationHandler和相关方法明确标记为可安全地从非主线程调用。 (这也意味着UIApplication的另一方法是不安全地从其他线程调用,因为这些是专门叫了。)
还有其他一些例外的情况为好,大部分涉及绘画(UIImage的,并UIColor实例至少为iOS 4)是线程安全的。
如果你对你想使用的方法更具体,这将有所帮助。 – rmaddy
@rmaddy谢谢你,我已经添加了我正在检查的那些方法。 – CarmeloS