看代码:
#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又一次去请求了数据。导致两次请求获得的数据都加载出来了。。。
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.
Tanya dan jawab soalan anda sendiri. . . .
Mengapa permintaan rangkaian tidak kembali untuk mendapatkan data sebelum melaksanakan
[self.dataArray removeAllObjects];
?Saya bersetuju dengan anda di tingkat atas, sumber data removeAllObjects harus diletakkan dalam kejayaan permintaan rangkaian
Um, kenapa awak menulisnya dengan cara yang menjijikkan, Ejen berhak mendapatnya