cari

Rumah  >  Soal Jawab  >  teks badan

ios - 网络请求数据重复的可能

看代码:

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

怪我咯怪我咯2771 hari yang lalu478

membalas semua(5)saya akan balas

  • 伊谢尔伦

    伊谢尔伦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.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:55:42

    Tanya dan jawab soalan anda sendiri. . . .

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:55:42

    Mengapa permintaan rangkaian tidak kembali untuk mendapatkan data sebelum melaksanakan [self.dataArray removeAllObjects];?

    balas
    0
  • 黄舟

    黄舟2017-04-18 09:55:42

    Saya bersetuju dengan anda di tingkat atas, sumber data removeAllObjects harus diletakkan dalam kejayaan permintaan rangkaian

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 09:55:42

    Um, kenapa awak menulisnya dengan cara yang menjijikkan, Ejen berhak mendapatnya

    balas
    0
  • Batalbalas