3

これは iOS 8 以前で動作していたので、iOS 9 ベータ版のバグであるか、動作が変更された可能性があります。

ユーザーにローカル通知を送信する許可を求めた後 -

        NSSet *categories = ...;
        UIUserNotificationType notificationTypes = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
        UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettings settingsForTypes:notificationTypes categories:categories];

        [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];

ユーザーが「許可」を選択すると、application:didRegisterUserNotificationSettings:で呼び出され[notificationSettings types] == UIUserNotificationTypeNoneます。

ただし、次に実行registerUserNotificationSettingsすると、正しいアクセス許可の種類で呼び出されます。

Apple の参考文献には、これが意図されていることを示すものは何も記載されていないため、バグである可能性があります。

何が問題なのか、それを回避する方法を知っている人はいますか?

4

2 に答える 2

1

代わりにチェック[application currentUserNotificationSettings]インすることで、この動作 (バグのように見えます) を回避できます。application:didRegisterUserNotificationSettings:

于 2015-06-09T14:37:40.003 に答える
-1

AppleがdidRegisterUserNotificationSettings方法を変更したことがわかりました

から

 - (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings

- (void)application:(UIApplication * nonnull)application didRegisterUserNotificationSettings:(UIUserNotificationSettings * nonnull)notificationSettings

これで問題が解決するかどうかはわかりませんが、試すことができます。

于 2015-06-09T07:23:40.380 に答える