Dengan Swift 4, Apple menyarankan melalui peringatan kompiler baru yang kami hindari penggunaannya #selector
dalam skenario ini. Berikut ini adalah cara yang jauh lebih aman untuk mencapai ini:
Pertama, buat lazy var yang bisa digunakan dengan notifikasi:
lazy var didBecomeActive: (Notification) -> Void = { [weak self] _ in
// Do stuff
}
Jika Anda mengharuskan pemberitahuan aktual dimasukkan, ganti saja _
dengan notification
.
Selanjutnya, kami mengatur pemberitahuan untuk mengamati agar aplikasi menjadi aktif.
func setupObserver() {
_ = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive,
object: nil,
queue:.main,
using: didBecomeActive)
}
Perubahan besar di sini adalah bahwa alih-alih memanggil #selector
, kita sekarang memanggil var yang dibuat di atas. Ini dapat menghilangkan situasi di mana Anda mendapatkan crash pemilih yang tidak valid.
Akhirnya, kami menghapus pengamat.
func removeObserver() {
NotificationCenter.default.removeObserver(self, name: .UIApplicationDidBecomeActive, object: nil)
}
NSNotificationCenter
. Terima kasih!