Periksa unduhan dari pengontrol tampilan lain AFNetworking iOS

Saya memiliki ViewController dengan UITableView di dalamnya, yang mencantumkan file yang ada di server. Setiap Sel pada Tabel ini memiliki beberapa indikator yang menunjukkan kemajuan pengunduhan dan hal lainnya.

Masalahnya:

Ketika saya kembali ke ViewController lain dan kembali ke pengontrol dengan TableView, kemajuan dan indikator di sel tampak seperti jika file tidak diunduh, tetapi file masih diunduh di latar belakang.

Solusi yang mungkin saya lakukan:

Memiliki NSMutableArray global yang berisi semua unduhan di beberapa objek NSDictionary (setiap kamus adalah unduhan, memiliki kemajuan, indeks baris).

Jika saya keluar dari ViewController dengan Tabel dan kembali, saya memeriksa apakah ada unduhan yang sedang berlangsung (dengan menghitung objek di Array Unduhan) dan memulai pengatur waktu yang akan memperbarui setiap item di Array Unduhan dan mendorong perubahan ke Tampilan Tabel.

(Saya menggunakan AFURLConnectionOperation, dengan progressBlock untuk memperbarui indikator)

Apakah ada solusi yang lebih baik? Terima kasih!


person facumedica    schedule 18.08.2015    source sumber


Jawaban (2)


Apakah array Anda yang dapat diubah adalah array global sederhana atau singleton atau properti dari delegasi aplikasi atau pengontrol tampilan root, itu terserah Anda, tetapi idenya benar, untuk menarik koordinasi unduhan dari pengontrol tampilan yang disajikan itu sendiri.

Namun yang kurang tepat adalah penggunaan timer. Daripada pengatur waktu yang melakukan polling untuk kemajuan pengunduhan dan memperbarui tabel yang sesuai, saya akan menyarankan beberapa pendekatan berbasis pemberitahuan di mana pengunduh memposting pemberitahuan ke [NSNotificationCenter defaultCenter] saat unduhan berlangsung/selesai dan kemudian meminta pengontrol tampilan mendaftarkan dirinya sebagai pengamat untuk pemberitahuan ini, memperbarui UI saat notifikasi masuk.

person Rob    schedule 18.08.2015
comment
Terima kasih, saya membuat notifikasi bernama perubahan dan saya mendorong perubahan itu dalam bentuk NSArray yang berisi kemajuan dan indeks baris. Kemudian saya akan membuat notifikasi untuk bagian akhir. Tampaknya berfungsi dengan baik, sekali lagi terima kasih. - person facumedica; 18.08.2015

Saya menyarankan Anda untuk mengikuti tutorial ini:

http://www.raywenderlich.com/51127/nsurlsession-tutorial

yang seharusnya memberi Anda jawaban tentang cara menangani kasus Anda.

person Anand    schedule 18.08.2015