deinit {
// perform the deinitialization
}
adalah jawaban yang benar untuk Swift "dealloc".
Namun, ada baiknya menunjukkan baru di iOS 9 bahwa NSNotificationCenter tidak perlu lagi dibersihkan!
https://developer.apple.com/library/content/releasenotes/Foundation/RN-FoundationOlderNotes/index.html#X10_11Notes
NSNotificationCenter
Di OS X 10.11 dan iOS 9.0 NSNotificationCenter dan NSDistributedNotificationCenter tidak akan lagi mengirim pemberitahuan ke pengamat terdaftar yang mungkin tidak dialokasikan. Jika pengamat dapat disimpan sebagai referensi zeroing-lemah, penyimpanan yang mendasarinya akan menyimpan pengamat sebagai referensi lemah zeroing, atau jika objek tidak dapat disimpan dengan lemah (yaitu memiliki mekanisme penahan / pelepasan khusus yang akan mencegah runtime dari dapat menyimpan objek dengan lemah) itu akan menyimpan objek sebagai referensi zeroing yang tidak lemah. Ini berarti bahwa pengamat tidak diharuskan untuk tidak mendaftar dalam metode deallokasi mereka. Pemberitahuan berikutnya yang akan dialihkan ke pengamat itu akan mendeteksi referensi nol dan secara otomatis membatalkan pendaftaran pengamat. Jika suatu objek dapat menjadi rujukan yang lemah, notifikasi tidak akan lagi dikirimkan kepada pengamat selama deallokasi; perilaku sebelumnya menerima notifikasi selama dealloc masih ada dalam kasus pengamat referensi yang tidak lemah. Pengamat berbasis blok melalui - [NSNotificationCenter addObserverForName: object: queue: usingBlock] metode masih harus tidak terdaftar ketika tidak lagi digunakan karena sistem masih memegang referensi yang kuat untuk pengamat ini. Menghapus pengamat (baik yang direferensikan dengan lemah atau yang direferensikan) secara prematur masih didukung. CFNotificationCenterAddObserver tidak sesuai dengan perilaku ini karena pengamat mungkin bukan objek. Pengamat berbasis blok melalui - [NSNotificationCenter addObserverForName: object: queue: usingBlock] metode masih harus tidak terdaftar ketika tidak lagi digunakan karena sistem masih memegang referensi yang kuat untuk pengamat ini. Menghapus pengamat (baik yang direferensikan dengan lemah atau yang direferensikan) secara prematur masih didukung. CFNotificationCenterAddObserver tidak sesuai dengan perilaku ini karena pengamat mungkin bukan objek. Pengamat berbasis blok melalui - [NSNotificationCenter addObserverForName: object: queue: usingBlock] metode masih harus tidak terdaftar ketika tidak lagi digunakan karena sistem masih memegang referensi yang kuat untuk pengamat ini. Menghapus pengamat (baik yang direferensikan dengan lemah atau yang direferensikan) secara prematur masih didukung. CFNotificationCenterAddObserver tidak sesuai dengan perilaku ini karena pengamat mungkin bukan objek.
tapi perhatikan poin di bawah ini tentang referensi yang kuat, jadi Anda mungkin harus khawatir tentang pembersihan ...?