2014-06-23 152 views
0

很抱歉,如果這似乎是一個愚蠢的問題:條件註釋標籤

我有我目前正在建設的iOS8上PhoneGap的應用程序,唯一的問題是,iOS8上棄用了膿通知一些代碼,所以在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]; 
} 
+0

請發表您的嘗試。提示:目標C幾乎是C的超集,包括像#ifdef這樣的預處理指令。 – danh

回答

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