我的iPAD應用程序中有4個UITableView。 我使用函數loadData
加載它們上的數據,該函數在所有4個TableViewController.m文件中都有調用數據庫的函數。對ios數據庫的異步調用
所以,我會做這樣的
[aView loadData];
[bView loadData];
[cView loadData];
[dView loadData];
凡aView,bView,CVIEW和DVIEW是的的UITableView的視圖控制器的東西。
但是,數據庫調用是同步發生的,因此只有在從[aView loadData]
函數檢索到數據之後,[bView loadData]
函數纔會被調用,等等。
這會影響我的表現。
我想知道是否有一種方法可以異步調用數據庫/異步調用調用數據庫的函數。
這將是巨大的,如果有人可以幫助我了這一點。
我編輯了我的答案並添加了一些細節。是的,你應該在你的每個'loadData'函數中添加這段代碼(或者你可以在調用者代碼中用'dispatch_async(...)'封裝'loadData'調用,但這不會很好並且可讀,並且它是ViewController觸發其相關視圖更新的責任,所以這是他們調用'[self.tableView reloadData]')的工作。 – AliSoftware
非常感謝您給我一個詳細的解釋。我會試試這個.. – learner2010
對於第二個問題:我的代碼中的主隊列使用'dispatch_get_main_queue()'函數檢索。閱讀[併發編程指南](http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW1)欲瞭解更多有關Grand Central Dispatch(GCD)和調度隊列 – AliSoftware