web-dev-qa-db-ja.com

宣言されていないタイプ 'UNUserNotificationCenter'の使用

アプリがフォアグラウンドにあるときにプッシュ通知のバナーを表示したい。そして、私はこのメソッドを実装して通知を表示します:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
        {
            completionHandler([.alert, .badge, .sound])
        }

しかし、このエラーが発生しました宣言されていないタイプ 'UNUserNotificationCenter'の使用 enter image description here

11
Shahbaz Akram

あなたがしなければならないすべては serNotifications フレームワークをインポートすることです:

import UserNotifications

また、 NUserNotificationCenterDelegate に準拠していることを確認してください。良い方法として、extensionとして実装することをお勧めします。

Delegationに慣れていない場合は、 this を確認してください。

import UIKit
// add this:
import UserNotifications

class ViewController: UIViewController {
    .
    .
    .

    // somewhere in your code:
    UNUserNotificationCenter.current().delegate = delegateObject
}

// add this:
// MARK:- UserNotifications
extension ViewController: UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
    {
        completionHandler([.alert, .badge, .sound])
    }
}
22
Ahmad F