ios更新UI時請嘗試使用performSelectorOnMainThread方法

最近開發項目時發現聯網獲取到數據後,使用通知方式讓列表刷新會存在死機的問題。編程

通過上網查找不少文章,都建議使用異步更新的方式,但是依然崩潰。多線程

最後嘗試使用performSelectorOnMainThread方法能夠成功更新tableView。異步

下面就學習一下這個函數吧!函數

NSObject類的performSelectorOnMainThread和performSelectorInBackground能夠實現簡單的多線程編程技術學習

一、- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg線程

建立一個線程在子線程執行,aSelector表明了新建立的線程,arg是傳入的參數orm

二、- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;對象

該方法的做用是在主線程中,執行制定的方法(代碼塊)。開發

參數:it

@selector就是,要定義咱們要執行的方法。

withObject:arg定義了,咱們執行方法時,傳入的參數對象。類型是id。(咱們能夠傳入任何參數)

waitUntilDone:YES指定,當前線程是否要被阻塞,直到主線程將咱們制定的代碼塊執行完。

注意:

1.當前線程爲主線程的時候,waitUntilDone:YES參數無效。

2.該方法,沒有返回值

3.該方法主要用來用主線程來修改頁面UI的狀態。

相關文章
相關標籤/搜索