我試圖在我的表視圖中包含大中央調度。我有一個屬性:NSArray *topPlaces
TableView在實現GCD後出現空
topPlaces
是來自Flickr查詢的字典數組。這需要一些時間來執行,所以我想把它放在一個單獨的線程上。該表使用topPlaces
來填充表格的每一行(注意:該表格是加載應用程序時出現的第一個視圖)。因爲有幾個方法調用getTopPlaces,所以在topPlaces未初始化的情況下,我在getTopPlaces中做了一個懶惰的實例化。我的代碼目前:
- (NSArray *)getTopPlaces
{
if (!_topPlaces)
{
dispatch_queue_t downloadrQueue = dispatch_queue_create("lister downloader", NULL);
dispatch_async(downloadrQueue, ^{
_topPlaces = [FlickrFetcher topPlaces];
dispatch_async(dispatch_get_main_queue(), ^{
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"_content" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *flickrTopPlacesAlphabetic = [_topPlaces sortedArrayUsingDescriptors:sortDescriptors];
_topPlaces = flickrTopPlacesAlphabetic;
});
});
dispatch_release(downloadrQueue);
}
return _topPlaces;
}
我試圖解決的主要問題是,當一個行被選中時,它延續到一個新的表視圖。但是當我選擇一行時,它會凍結幾秒鐘,直到新表加載。我希望用戶即使在選中該行並準備繼續時也能夠滾動。任何幫助將不勝感激。
如果您有與該問題有關的其他信息,請嘗試編輯該問題,而不是下次回答問題:) – 2012-07-24 02:41:32
我還沒有銷售代表。但是,感謝指針。 – 2012-07-24 05:01:45