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

刚刚发现苹果修改了他们的didRegisterUserNotificationSettings方法

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

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

不知道这是否会解决问题,但您可以尝试。

于 2015-06-09T07:23:40.380 回答