2011-05-22 47 views
15

我試圖找出什麼方法(名稱!)在iOS 4.0的UIKit中變成線程安全的。線程安全的UIKit方法

我已經通過蘋果公司的文檔搜索了一點成功。例如,使用imageNamed創建的UIImage在其他線程上不安全(它偶爾會從主線程中拋棄其CGImage),而imageWithCGImage可能是(?)。另外,我已經看到UIColor可以安全地用於主線程以外的線程。

對於哪些方法不安全,哪些方法不安全?

編輯: 有趣的是UIKit類是有趣的是,在不同的線程使用,如UIImageUIColor

+0

你怎麼知道用imageNamed創建的UIImage:不安全?你遇到過問題嗎? – jasongregori 2011-10-26 21:36:37

+0

imageNamed:不是線程安全的;請參閱Apple開發人員的評論:https://devforums.apple.com/message/360659#360659 – 2013-03-03 15:52:21

回答

5

從蘋果公司的documentation

注:在大多數情況下, UIKit類只能在應用程序的主線程中使用。對於派生自UIResponder的類或者以任何方式涉及操縱應用程序用戶界面的類尤其如此。

所以,你真的不應該用在後臺線程中UIKit任何互動。

+11

根據iOS 4發行說明(http://developer.apple.com/library/ios/#releasenotes/General /WhatsNewIniPhoneOS/Articles/iPhoneOS4.html):在UIKit中繪製圖形上下文現在是線程安全的。具體來說: •用於訪問和操作圖形上下文的例程現在可以正確處理駐留在不同線程上的上下文。 •字符串和圖像繪製現在是線程安全的。 •在多個線程中使用顏色和字體對象現在可以安全地使用。 – jasongregori 2011-10-26 21:34:11