当我注册多种通知类型时,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。
答案 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)];