簡體   English   中英

Swift 本地通知檢查器僅主線程

[英]Swift Local Notifications Checker Main Thread Only

我有一個完成返回布爾值的方法。 但我不知道如何解決這個錯誤。

錯誤

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 {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM