objektif-c - Cara menggunakan reloadData dengan betul untuk menyegarkan tableView atau collectionView dalam pembangunan iOS
我想大声告诉你
我想大声告诉你 2017-05-02 09:22:52
0
1
760

Baru-baru ini, saya tiba-tiba mendapati bahawa aplikasi iOS yang saya tulis sebelum ini kadang-kadang ranap apabila dimuat semula.
Saya menyemak kod dan menemui pepijat. Langkah-langkah yang membawa kepada pepijat adalah seperti berikut:

  1. Pengguna menarik paparan meja ke bawah untuk memuat semula.

  2. Kosongkan NSArray yang menyimpan data.

  3. Dapatkan data rangkaian dan kemudian isikannya ke dalam NSArray.

Dalam keadaan biasa tiada masalah untuk melakukan ini.
Walau bagaimanapun, jika pengguna menyeret paparan jadual semasa langkah 2 dan 3, ia akan ranap serta-merta.

Menganalisis sebabnya. Apabila saya mengosongkan NSArray, tableView tidak akan memanggil numberOfItemsInSection secara automatik untuk mendapatkan bilangan data terkini Jika ia ditarik ke bawah pada masa ini, tableview akan memanggil cellForItemAtIndexPath untuk mendapatkan sel baharu ialah 0, capaian cellForItemAtIndexPath Data akan berada di luar sempadan tatasusunan.

Jadi saya ingin bercakap tentang langkah kedua yang dimasukkan di tengah-tengah langkah ketiga, iaitu, selepas mendapatkan data jauh, kosongkan NSArray, kemudian gantikannya dengan data rangkaian baharu, dan kemudian laraskan muat semula data semula.

Tetapi ini masih mempunyai pepijat asal Sebelum memanggil reloadData, bilangan NSArray adalah berbeza daripada numberOfItemsInSection yang diperolehi oleh tableView. Cuma selang masa lebih pendek berbanding sebelum ini.

Saya ingin bertanya kepada semua pakar bagaimana anda mengemas kini data dalam tableView. Bagaimana untuk mencapai keselamatan 100%.

我想大声告诉你
我想大声告诉你

membalas semua(1)
迷茫

Selagi data berubah, anda harus memuat semula tableView
Walaupun anda ingin mengosongkan kandungan, anda boleh memuat semulanya apabila anda selesai

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