Objective-c中的条件注释标签

时间:2014-06-23 19:48:38

标签: ios objective-c cordova

对不起,如果这看起来像个愚蠢的问题:

我有正在为iOS8构建的phonegap应用程序,唯一的问题是iOS8弃用了一些Pus Notifications的代码,所以在iOS8中我已经让它们工作但是我用它来工作的代码在iOS7中不起作用,我试图让它为两者工作。我使用if else语句检查版本是否正常,但问题是,即使if else只触发正确版本的代码,但在iOS7我的应用程序将无法正确编译,因为它看到不存在的新代码iOS7 SDK,有什么方法可以让我的工作吗?就像你如何在HTML中为特定的浏览器版本做分数评论一样?

这就是我所拥有的,因为你看它只是一个if else语句,但显然它不适用于iOS7 SDK,因为SDK不知道初始(if)中的代码是什么,因为它在iOS8中是新的

NSArray *vComp = [[UIDevice currentDevice].systemVersion   componentsSeparatedByString:@"."];

if ([[vComp objectAtIndex:0] intValue] >= 8) {

    /// First register notification setting with settings type like
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications]; // you can also set here for local notification.

} else if ([[vComp objectAtIndex:0] intValue] < 8) {
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:notificationTypes];
}

1 个答案:

答案 0 :(得分:1)

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
//Put your iOS 8 code here
#else
// Put iOS 7 and below here
#endif