ios - 网络请求数据重复的可能
怪我咯
怪我咯 2017-04-18 09:53:42
0
5
471

看代码:

#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又一次去请求了数据。导致两次请求获得的数据都加载出来了。。。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(5)
伊谢尔伦

在每次資料請求成功後執行 removeAllObjects 和 reloadData 即可,另外最好給你的網路請求方法對應的快取機制,沒有新的資料時,無需更新資料來源。

Peter_Zhu

自問自答。 。 。 。

巴扎黑

為什麼不是網路請求回來取得到資料才執行[self.dataArray removeAllObjects];呢?

黄舟

同意樓上,資料來源removeAllObjects 要放在網路請求成功裡邊

小葫芦

額,為什麼用這麼噁心的寫法了,代理,block值得你擁有

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板