2017-10-26 13 views
0

私はUILocalNotificationを表示する権限を持つことができるかどうかをチェックするために私のコードに関数を持っています。バックグラウンドスレッドから呼び出さメインスレッドの通知パーミッションを迅速にチェックする方法は?

UIのAPI: UIApplication.currentUserNotificationSettingsを行うだけ

どのようにメイン スレッドから使​​用しなければなりません

open func hasPermission() -> Bool { 
    if let permissions = UIApplication.shared.currentUserNotificationSettings { 
     if permissions.types.contains(.alert) { 
      return true 
     } 
    } 
    return false 
} 

このコードは、Xcodeの9に警告をトリガしました私はこれを解決する? DispatchQueue.main.asyncメソッドがあることを知っていますが、その実装方法はわかりません。

答えて

1

このようにすることができます。

DispatchQueue.main.async { 
    if hasPermission() { 
     // 
    } 
} 
+0

これはバックグラウンドジョブの一部なので、私はメインスレッドでできるだけ少なくすることをお勧めします。この特定のチェックはガードとして実行されますhasPermission()else { –

関連する問題