1.一開始先看如何製作並管理thread在obj-c環境下---運用NSInvocationOperation
http://c.gzl.name/archives/tag/nsinvocationoperation
2.上面教學沒有教到call back main thread的方法,這裡有---performSelectorOnMainThread
http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation
3.有關畫面更新開發注意
除了main thread以外,其他thread不能使用UIkit,這意謂著你不能再其他thread做更新view的動作(addSubview: ....etc)
解決方法就是用第二點回到main thread並呼叫你想要的更新view的方法!
比如實作運用如MBProgressHUD來在main thread裡面做show Loading Image,然後在second thread裡面load data,load完之後再call back回main去執行[HUD removeFromSuperview];
4.如果配合MBProgressHUD開發而loading時間很長時(>5秒)請注意
另外有時候loading時間會很長,預設MBProgressHUD的loading image過一段時間(約5秒)不管是否有呼叫 removeFromSuperview都會自己消失,簡單得解決辦法是去MBProgressHUD.m找到hide方法,把它的
[self hideUsingAnimation:useAnimation];
這行註解調就可以了,這樣如果沒有呼叫removeFromSuperview圖案就不會消失囉~
沒有留言:
張貼留言