Swift 4 ile Apple, yeni bir derleyici uyarısı yoluyla #selector
bu senaryoda kullanılmasını önlediğimizi bildiriyor. Aşağıdakiler bunu başarmanın çok daha güvenli bir yoludur:
İlk olarak, bildirim tarafından kullanılabilecek tembel bir değişken oluşturun:
lazy var didBecomeActive: (Notification) -> Void = { [weak self] _ in
// Do stuff
}
Gerçek bildirimin dahil edilmesini istiyorsanız, _
ile değiştirin notification
.
Ardından, uygulamanın etkinleştiğini gözlemlemek için bildirim ayarladık.
func setupObserver() {
_ = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive,
object: nil,
queue:.main,
using: didBecomeActive)
}
Buradaki büyük değişiklik, a'yı çağırmak yerine, #selector
şimdi yukarıda oluşturulan varlığı çağırıyoruz . Bu, geçersiz seçici çökmeleri olan durumları ortadan kaldırabilir.
Sonunda gözlemciyi kaldırıyoruz.
func removeObserver() {
NotificationCenter.default.removeObserver(self, name: .UIApplicationDidBecomeActive, object: nil)
}
NSNotificationCenter
. Teşekkür ederim!