UIRemoteNotificationType неверное преобразование - PullRequest
5 голосов
/ 06 апреля 2010

Я пытаюсь использовать эту довольно стандартную строку кода в моем приложении:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

Но я получаю следующую ошибку:

error: invalid conversion from 'int' to 'UIRemoteNotificationType'

Это работает, если я использую только один из типов уведомлений, но каждый раз происходит сбой, если я пытаюсь использовать более одного. Есть идеи, что я делаю не так?

Ответы [ 3 ]

14 голосов
/ 06 апреля 2010

Вы, вероятно, используете Objective-C ++, что неявное преобразование из int в перечисление запрещено.

Попробуйте добавить явное приведение:

[… registerForRemoteNotificationTypes:
     (UIRemoteNotificationType)(UIRemoteNotificationTypeAlert | …)];
4 голосов
/ 06 апреля 2010

Вы должны привести результат к типу UIRemoteNotificationType:

(UIRemoteNotificationType)(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)

Таким образом, метод получил то, что ожидал.

1 голос
/ 27 января 2011

Используйте это: Это решит вашу проблему.

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationType)(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...