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 {
我有一个完成的方法 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 {