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

看代码:

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

怪我咯
怪我咯

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

répondre à tous(5)
伊谢尔伦

Exécutez simplement RemoveAllObjects et reloadData une fois que chaque demande de données est réussie. De plus, il est préférable de fournir un mécanisme de mise en cache correspondant pour votre méthode de demande réseau. Lorsqu'il n'y a pas de nouvelles données, il n'est pas nécessaire de mettre à jour la source de données.

Peter_Zhu

Posez et répondez à vos propres questions. . . .

巴扎黑

Pourquoi la requête réseau ne revient-elle pas pour récupérer les données avant de s'exécuter [self.dataArray removeAllObjects]; ?

黄舟

Je suis d'accord avec toi à l'étage, la source de données RemoveAllObjects doit être placée dans le réseau request success

小葫芦

Euh, pourquoi l'écrivez-vous d'une manière si dégoûtante ? Agent, le bloc mérite le vôtre

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal