嗨我的iPhone應用程序用戶更新桌面視圖的Web服務,首先將項目保存在覈心數據。如何強制tableview顯示立即從web服務獲取的內容?
但是,當我相信數據存在於核心數據中以及桌面視圖在屏幕上刷新時,目前存在很長的延遲。
隨着應用程序的空白安裝,應用程序屏幕可以在微調停止後數據出現在屏幕上10到15秒後保持空白,但是,如果您點擊一行,則可以查看項目建議的詳細信息數據存在於核心數據中。類似的,如果你上下滾動,屏幕開始填充。我的問題是,如何在數據保存到核心數據後立即讓數據顯示在屏幕上?
我試過把[self.tableView reloadData]
放在所有的地方,但它似乎沒有影響顯示數據的時間表。唯一有一個效果的是,如果我在調用Web服務之後將它放在viewDidLoad中。在這種情況下,每行顯示佔位符圖像,但文本不會在相同的十到十五秒內出現。
這裏是進行Web服務調用的viewDidLoad方法。
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
_spinner.center = CGPointMake(160, 200);
_spinner.tag = 1;//todos
[self.tableView addSubview: _spinner];
[self.tableView bringSubviewToFront:_spinner];
_spinner.hidesWhenStopped = YES;
_spinner.hidden = NO;
[_spinner startAnimating];
//GO TO BACKGROUND THREAD FOR SERVER CALL
dispatch_async(kBgQueue, ^{
NSData* data = [NSData dataWithContentsOfURL: kServiceURL];
[self fetchServiceData:data];//SYNCING NOW TAKING PLACE
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
[[self.view viewWithTag:1] stopAnimating];
});
});
}
我也放置self.tableView reloadData viewWillAppear沒有成功。
fetchServiceData中會發生什麼? – trapper