iOS:在主线程安全之外的线程中调用UIApplication的方法吗?

Car*_*loS 5 iphone uiapplication ios

有人说必须在主线程中使用UIApplication,但我没有在Apple的文档中看到这一点.那么有人可以告诉我在单独的线程中使用UIApplication是否安全吗?如果不安全,这会记录在哪里?

编辑: 我专注于那些操纵本地通知的方法.

Jes*_*sak 5

大多数UIKit类都不是线程安全的.这已经在WWDC等上进行了详细的讨论,但是没有很好的记录.我能找到的最好的是TN2109,它反复讨论了如何不允许从辅助线程调用UIKit.

请注意,此规则有许多记录的例外情况.例如,UIApplication上的beginBackgroundTaskWithExpirationHandler和相关方法明确标记为从非主线程调用是安全的.(这也意味着UIApplication的其他方法都不能安全地从其他线程调用,因为这些是专门叫了.)

此规则还有其他例外,主要涉及绘图(UIImage和UIColor实例是线程安全的,至少从iOS 4开始).