LoginSignup
0
0

【SwiftUI】getNotificationSettingsの非同期代替関数

Posted at

Before

async関数以外だと以下のコードのように通知許可状態を取得していました。

UNUserNotificationCenter.current().getNotificationSettings { settings in
    DispatchQueue.main.async {
        switch settings.authorizationStatus {
        case .authorized:
            self.statusLabel.text = "Status: Authorized"
        case .denied:
            self.statusLabel.text = "Status: Denied"
        case .notDetermined:
            self.statusLabel.text = "Status: NotDetermined"
        case .provisional:
            self.statusLabel.text = "Status: Provisional"
        case .ephemeral:
            self.statusLabel.text = "Status: Ephemeral"
        @unknown default:
            fatalError("Unknown authorization status")
        }
    }
}

async関数内で使用した場合、警告が出ます。

Consider using asynchronous alternative function

After

// こちらに代替された
let settings = await UNUserNotificationCenter.current().notificationSettings()
switch settings.authorizationStatus {
case .authorized:
    self.statusLabel.text = "Status: Authorized"
case .denied:
    self.statusLabel.text = "Status: Denied"
case .notDetermined:
    self.statusLabel.text = "Status: NotDetermined"
case .provisional:
    self.statusLabel.text = "Status: Provisional"
case .ephemeral:
    self.statusLabel.text = "Status: Ephemeral"
@unknown default:
    fatalError("Unknown authorization status")
}

参考文献

ドキュメントにめちゃめちゃ載っていましたね…

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0