Tambahkan perilaku untuk menghapus metode dalam parse

Saya memiliki subkelas khusus PFObject yang melacak file video besar di perangkat. Saya ingin memastikan bahwa jika saya menghapus PFObject, videoFile juga terhapus.

Untuk saat ini jika telah mengesampingkan semua varian metode penghapusan, tapi sepertinya itu salah. Apakah ada cara utama untuk menambahkan perilaku ketika suatu objek dihapus?


person otusweb    schedule 03.11.2015    source sumber
comment
Bisakah Anda memperjelas pertanyaannya. Apakah file video disimpan di Parse atau hanya lokal? Ada beforeDelete dan afterDelete cloud code hooks yang dapat Anda tempatkan di kelas untuk menangani segala jenis operasi pembersihan tambahan yang mungkin Anda perlukan   -  person Russell    schedule 03.11.2015
comment
File disimpan secara lokal   -  person otusweb    schedule 04.11.2015


Jawaban (1)


Ada kait yang menangkap setiap penghapusan di back-end, (beforeDelete dalam kode cloud), tetapi dari pertanyaan, sepertinya itu tempat yang salah untuk menangkapnya, karena file yang perlu dihapus adalah file lokal.

Parsing SDK bersumber terbuka baru-baru ini. Membaca kode. Sepertinya varian hapus pada akhirnya semuanya memanggil deleteInBackground. Jadi satu ide -- agak terlalu pintar, IMO -- adalah mengganti ide itu saja. Namun menurut saya tidak bijaksana jika bergantung pada fakta yang tidak terdokumentasi ini.

Jika Anda mengontrol sisi pemanggil, salah satu idenya adalah dengan membuat kebijakan untuk tidak pernah memanggil penghapusan secara langsung, dan menyediakan metode "otuswebDelete" untuk melakukan penghapusan objek dan file.

Jika Anda tidak mengontrol penelepon (atau tidak percaya diri untuk mengingat kebijakan Anda sendiri), menurut saya lebih baik Anda, berdasarkan desain Anda saat ini, mengganti beberapa varian saja:

– delete
– delete:
– deleteInBackground
– deleteInBackgroundWithBlock:
– deleteEventually

Mereka semua cukup memanggil super untuk menghapus, lalu memanggil metode di subkelas untuk menghapus file lokal. Tidak terlalu buruk, IMO.

Terakhir, karena alasan yang terlalu banyak untuk dirinci di sini, saya memiliki kebiasaan "membungkus" PFObjects saya (subkelas NSObject yang memiliki properti PFObject) daripada membuat subkelasnya.

Beban dari pendekatan ini adalah sedikit kebosanan untuk membuat pengakses untuk properti, namun sebagai imbalannya saya mendapatkan kontrol lebih besar atas (a) penggunaan metode SDK (seperti dalam masalah Anda), (b) serialisasi, (c) mengambil sebuah mengelola objek terkait, (d) selengkapnya...

person danh    schedule 03.11.2015
comment
Tidak terkait dengan OP tetapi sebagai seseorang yang membuat subkelas PFObject secara teratur, saya tertarik dengan ide pembungkus Anda. Sudahkah Anda mewakili beberapa tingkat warisan PFObject dengan cara ini? Karena PFObject hanya mengizinkan satu tingkat subkelas secara normal. - person Russell; 03.11.2015
comment
@Russell, ya, beberapa tingkat subkelas adalah manfaat lain dari pembungkusan. - person danh; 03.11.2015
comment
konsep yang sangat rapi yang harus saya coba. Terima kasih telah berbagi! - person Russell; 03.11.2015