Rumah > Soal Jawab > teks badan
看代码:
#viewDidLoad
[self getActivityListFromNetwork];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(refreshActivityListFromNetwork)
name:@"backRefresh"
object:nil];
#refreshActivityListFromNetwork
- (void)refreshActivityListFromNetwork{
[self.dataArray removeAllObjects];
[self getActivityListFromNetwork];
[self.mainTableView headerEndRefreshing];
}
问题是:如果注销后重新登录的话会有一定概率出现重复数据。
分析原因是点击登录后,页面加载执行了getActivityListFromNetwork这个方法。这时候去请求数据。在没有返回数据前执行了refreshActivityListFromNetwork又一次去请求了数据。导致两次请求获得的数据都加载出来了。。。
伊谢尔伦2017-04-18 09:55:42
Hanya laksanakan removeAllObjects dan muat semulaData selepas setiap permintaan data berjaya Selain itu, adalah lebih baik untuk menyediakan mekanisme caching yang sepadan untuk kaedah permintaan rangkaian anda, tidak perlu mengemas kini sumber data.
巴扎黑2017-04-18 09:55:42
Mengapa permintaan rangkaian tidak kembali untuk mendapatkan data sebelum melaksanakan [self.dataArray removeAllObjects];
?
黄舟2017-04-18 09:55:42
Saya bersetuju dengan anda di tingkat atas, sumber data removeAllObjects harus diletakkan dalam kejayaan permintaan rangkaian
高洛峰2017-04-18 09:55:42
Um, kenapa awak menulisnya dengan cara yang menjijikkan, Ejen berhak mendapatnya