有人說在主線程中必須使用UIApplication,但我沒有在Apple的文檔中看到這一點。 那麼有人可以告訴我,如果在單獨的線程中使用UIApplication是否安全?如果它不安全,在哪裏記錄?iOS:正在調用主線程安全以外線程中的UIApplication方法嗎?
編輯: 我正在關注那些操縱本地通知的方法。
有人說在主線程中必須使用UIApplication,但我沒有在Apple的文檔中看到這一點。 那麼有人可以告訴我,如果在單獨的線程中使用UIApplication是否安全?如果它不安全,在哪裏記錄?iOS:正在調用主線程安全以外線程中的UIApplication方法嗎?
編輯: 我正在關注那些操縱本地通知的方法。
大多數UIKit類不是線程安全的。在WWDC等已經詳細討論過這個問題,但沒有很好的文檔記錄。我能找到的最好的是TN2109,它反覆討論如何從輔助線程調用UIKit是不被允許的。
請注意,此規則有許多記錄的例外情況。例如,UIApplication上的beginBackgroundTaskWithExpirationHandler和相關方法明確標記爲可安全地從非主線程調用。 (這也意味着UIApplication的另一方法是不安全地從其他線程調用,因爲這些是專門叫了。)
還有其他一些例外的情況爲好,大部分涉及繪畫(UIImage的,並UIColor實例至少爲iOS 4)是線程安全的。
如果你對你想使用的方法更具體,這將有所幫助。 – rmaddy
@rmaddy謝謝你,我已經添加了我正在檢查的那些方法。 – CarmeloS