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")
}
参考文献
ドキュメントにめちゃめちゃ載っていましたね…