Swift 仅限本地通知检查器主线程

Swift Local Notifications Checker Main Thread Only

我有一个完成的方法 returns 一个 bool。但我不知道如何解决这个错误。

错误

UISwitch.isOn must be used from main thread only

按钮操作

@IBAction func notificationSwitch(_ sender: Any) {
    
    LocalNotification().checkEnabled(completion: { (success) -> Void in
        
        // When download completes,control flow goes here.
        if success == false{
            print("Cant Turn On")
            self.notificationToggle.isOn = false
        } else {
            print("Can Turn On")
            if self.notificationToggle.isOn == true {
                self.notificationToggle.isOn = false
            } else {
                self.notificationToggle.isOn = true
            }
        }
    })
}

也已经尝试将 LocalNotifications().... 包装在 DispatchQueue.main.async 中,但仍然出现相同的错误

你快到了。它不是 checkEnabled 需要包装在进入主线程的调用中,而是它“内部”的东西:

    LocalNotification().checkEnabled(completion: { (success) -> Void in
        DispatchQueue.main.async {
            if success == false {