2010-11-12 69 views
-1

我知道Apple說所有與UI相關的操作都應該在主線程中進行。iPhone - 總是在主線程上更新用戶界面?

所以我的問題是「所有UI相關的操作」真的意味着每一個可能的UI相關操作?

例如,我會在一個單獨的線程中將ViewB ViewB添加到ViewA中。我應該總是在單獨的線程上使用[ViewA performSelectorOnMaintThread:@selector(addSubview:)......?

謝謝

回答

-1

是的。

否則會崩潰。

+0

但它太無聊和麻煩,不是嗎? – Jack 2010-11-12 13:21:09

+0

如何設置框架或中心或其他UI相關的屬性? – Jack 2010-11-12 13:21:35

+0

直到你的其他線程觸及UI,這一切都很好。你會立即知道。 – Brandon 2010-11-12 14:51:40

0

是的,你應該在主線程中處理關於UI的所有信息。 如果你在MFC下,你應該採用相同的方式。

0

Grand Central Dispatch在後臺線程中執行某些操作(例如:dispatch_async(dispatch_get_main_queue(), myBlock);)並且根本沒有崩潰。我做了很多事情myBlock()

+0

所以,這意味着你使用UI的主線程,如果你使用dispatch_async(dispatch_get_main_queue():) – SAKrisT 2012-04-05 13:46:19

+0

呢?它永遠不會凍結用戶界面,也有一些長時間的businneses完成後很長一段時間 – ilhnctn 2012-04-05 13:48:33

+0

是的,嘗試檢查調試器http://gyazo.com/7bd2c7e231715068c3cc8f59a01ffb41 – SAKrisT 2012-04-05 15:24:33