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

看代码:

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

怪我咯
怪我咯

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

membalas semua(5)
伊谢尔伦

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.

Peter_Zhu

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan