iosswiftpush-notificationswift4unusernotificationcenter

UIApplication.registerForRemoteNotifications() must be called from main thread only


Xcode 9 (iOS 11) showing me an error/warning while registering for Push (remote) notification.

Here is error message

enter image description here

And here is code, I've tried:

let center  = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.sound, .alert, .badge]) { (granted, error) in
        if error == nil{
              UIApplication.shared.registerForRemoteNotifications()
        }
 }

Error/Warning Line:

UIApplication.shared.registerForRemoteNotifications()

How to resolve this?


Solution

  • In swift4

    You can solve this issue with

    DispatchQueue.main.async {
      UIApplication.shared.registerForRemoteNotifications()
    }
    

    Hope this will help...