子線程請求數(shù)據(jù)、主線程刷新UI、這句話,已經(jīng)說了無數(shù)次,然而今天還是在這里掉進了坑,看著日漸稀疏的秀發(fā),還是記錄下吧,
首先,如果我的網(wǎng)絡(luò)請求完成之后直接[self.tableView reloadData]
,那么界面卡的不要不要的,
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{//子線程中所有數(shù)據(jù)處理完畢
id jsondata = [jsonString JSONValue];
if (jsondata != nil) {
if (jsondata && [jsondata isKindOfClass:[NSDictionary class]]) {
self.dataDictionary = (NSDictionary *)jsondata;
if ([[self.dataDictionary objectForKey:@"flag"] intValue] == 1) {
self.dataArray = [self.dataDictionary objectForKey:@"list"];
self.maxDropArr = [self.dataDictionary objectForKey:@"maxDrop"];
}
}
}
dispatch_async(dispatch_get_main_queue(),^{ //重新回到主線程中更新UI
[self.dataTableView reloadData];
});
});
這樣界面看起來流暢了不少,很好,非常nice,順帶一句,最近在寫彩票的走勢圖,(不得不說使用 - (void)drawRect:(CGRect)rect {}
方法對內(nèi)存和效率方面還是有很多的優(yōu)勢的)回頭整理下代碼,寫個日記記錄下期中遇到的坑,先來一張圖片占樓,雖然理論來說走勢圖有問題,然、設(shè)計圖就是這樣的,已經(jīng)得到PM的確認,并且這么來說,比標準的走勢圖簡單不少,何樂而不為呢,很好,很強大,very good
gg、圖片不是很清晰,但是能說明問題