有人说必须在主线程中使用UIApplication,但我没有在Apple的文档中看到此内容。所以有人可以告诉我在单独的线程中使用UIApplication是否安全吗?如果不安全,请在哪里记录?
编辑:我专注于那些操作本地通知的方法。
大多数UIKit类不是线程安全的。 WWDC等已对此进行了详尽的讨论,但记录的文献并不多。我能找到的最好的是TN2109,它反复讨论了如何不允许从辅助线程调用UIKit。
请注意,此规则有许多记录在案的例外。例如,UIApplication上的beginBackgroundTaskWithExpirationHandler和相关方法被明确标记为可以安全地从非主线程调用。 (这也意味着从其他线程可以安全地调用UIApplication的其他方法,因为这些方法是专门调用的。)该规则也有其他例外,主要涉及绘图(UIImage和UIColor实例至少在iOS 4起是线程安全的)。