Подтвердить что ты не робот

Как обновить код с помощью enabledRemoteNotificationTypes, потому что он "не поддерживается в iOS 8"?

это код, который я использовал для RemoteNotificationType:

NSUInteger rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

Я получил ошибку:

2014-09-29 15: 46: 47.416 Dummy [258: 21766] enabledRemoteNotificationTypes не поддерживается в iOS 8.0 и новее.

Было бы большой помощью, если бы кто-нибудь мог дать мне решение.

4b9b3361

Ответ 1

Вы также можете использовать этот код:

if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]) {

    UIUserNotificationType types = [[[UIApplication sharedApplication] currentUserNotificationSettings] types];

    if (types == UIUserNotificationTypeNone) {
        // Do something
    }

} else {

    UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

    if (types == UIRemoteNotificationTypeNone) {
        // Do something
    }
}

Или этот, если вы хотите только проверить, что пользователь зарегистрирован для удаленных уведомлений:

if ([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) {

    BOOL isRegisteredForRemoteNotifications = [[UIApplication sharedApplication] isRegisteredForRemoteNotifications];

    if (isRegisteredForRemoteNotifications) { 
        // Do something
    }

} else {

    UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

    if (types == UIRemoteNotificationTypeNone) {
        // Do something
    }
}

Ответ 2

Используйте это условие для поддержки как в iOS 7, так и в предыдущем iOS 8

#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

NSUInteger rntypes;
  if (!SYSTEM_VERSION_LESS_THAN(@"8.0")) {
   rntypes = [[[UIApplication sharedApplication] currentUserNotificationSettings] types];
}else{
   rntypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
}

Ответ 3

Используйте следующие методы -

[[UIApplication sharedApplication] isRegisteredForRemoteNotifications]

или

[[UIApplication sharedApplication] currentUserNotificationSettings]

для получения пользовательских уведомлений и уведомлений пользователей в iOS 8.