注册多个远程通知类型时出错

时间:2011-11-04 21:12:55

标签: iphone ios ios5 xcode4.2

当我注册多种通知类型时,XCode让我疯狂:

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

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

抛出错误而不是警告:

  

错误:语义问题:无法使用类型为'int'的rvalue初始化'UIRemoteNotificationType'类型的参数

即使这是每个人都使用的相同行(甚至Apple在他们的演示中)。我正在使用iOS 5 SDK(iOS 5发布后出现的第一个)& XCode 4.2。该项目是一个较旧的项目(XCode 3和iOS 4),正在升级并针对iOS 5。

4 个答案:

答案 0 :(得分:5)

我也有这个问题。诀窍是如果此代码位于.mm文件(Objective C ++)中,则会发生此错误。如果您没有使用任何C ++功能,请将文件扩展名从.mm更改为.m,它将编译好。

答案 1 :(得分:2)

尝试转换为UIRemoteNotificationType

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

答案 2 :(得分:0)

为了记录我完全无法解决这个问题。这绝对是开发人员工具的一个问题。我的UIApplicationDelegate中的行无效。我能够通过将这一行放在我的MainViewController而不是我的ApplicationDelegate来解决这个问题。

答案 3 :(得分:-1)

在括号周围添加括号,如

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