Как активировать уведомления с помощью addObserver

#ios #swift

#iOS #swift

Вопрос:

Внутри экземпляра класса я вызываю приведенный ниже метод setUpNotificationHandling ,.

Я создаю экземпляр класса только один раз в своем коде, а не при отправке данных.

Будут ли наблюдатели оставаться активными после добавления в очередь уведомлений или мне нужно найти способ вызывать их снова и снова

 init(modelName: String) {
    self.modelName = modelName
    setUpNotificationHandling()
  }

private func setUpNotificationHandling() {
     
    let notificationCenter = NotificationCenter.default
 
    if #available(iOS 13.0, *) {
      notificationCenter.addObserver(self, selector: #selector(saveChanges(_:)), name: UIScene.willDeactivateNotification, object: nil)
    } else {
      notificationCenter.addObserver(self, selector: #selector(saveChanges(_:)), name: UIApplication.willResignActiveNotification, object: nil)
    }
     
  }




@objc func saveChanges(_ notification: Notification) {
        
        saveChanges()
    }
    
    private func saveChanges() {
        guard self.managedObjectContext.hasChanges  else {
           
            return
        }
        
        do {
          
            try self.managedObjectContext.save()
        }
        catch {
            print("unable to save moc")
            print("(error), (error.localizedDescription)")
        }
    }
  

Ответ №1:

Пока ваш наблюдатель не умрет или не будет вызван removeObserver(_:) , NotificationCenter будет продолжать отправлять уведомления вашему наблюдателю.

Комментарии:

1. итак, просто для подтверждения, не нужно искать способ вызывать его снова и снова, один вызов и все готово, верно?