Ошибка при регистрации для нескольких типов удаленных уведомлений - PullRequest
2 голосов
/ 05 ноября 2011

XCode сводит меня с ума, когда я регистрируюсь для нескольких типов уведомлений:

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

или

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

Выдает и ошибка не предупреждение:

ошибка: семантическая проблема: невозможно инициализировать параметр типа 'UIRemoteNotificationType' со значением типа int '

Хотя это та же самая линия, которую используют все (даже Apple в своих демонстрациях). Я использую iOS 5 SDK (первый, вышедший после выхода iOS 5) и XCode 4.2. Проект является более старым проектом (XCode 3 и iOS 4), который обновляется и нацелен на iOS 5.

Ответы [ 4 ]

5 голосов
/ 31 марта 2012

У меня тоже была эта проблема.Хитрость в том, что если этот код находится в файле .mm (Objective C ++), возникает эта ошибка.Если вы не используете какие-либо функции C ++, измените расширение имени файла с .mm на .m, и оно скомпилируется, OK.

2 голосов
/ 11 ноября 2011

Попробуйте привести к UIRemoteNotificationType:

 [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationType)(UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeBadge)]; 
0 голосов
/ 23 ноября 2011

Кстати, я так и не смог полностью решить эту проблему.Это определенно проблема с инструментами разработчика.Строка в моем UIApplicationDelegate не работает.Я смог обойти эту проблему, разместив эту строку в моем MainViewController, а не в ApplicationDelegate.

0 голосов
/ 05 ноября 2011

ставьте скобки вокруг параметров, таких как

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