嗨,在我的一個應用程序中,我必須支持IOS6的應用程序& IOS7.爲了完成這一步,我必須知道當前的設備版本。爲此,我定義了一個宏,我試圖將該宏用作完成我的任務的參考。我寫的代碼如下。如何在目標c中使用預處理器
在.h文件中,我定義爲IPhoneOSVersion 50000
這個代碼在.m文件
if([[[UIDevice currentDevice] systemVersion] isEqualToString:@"7.0"])
{
#undef IPhoneOSVersion
#define IPhoneOSVersion 70000
NSLog(@"_IPHONE_OS_VERSION_MIN_REQUIRED after is %d",IPhoneOSVersion);
}
else
{
#undef IPhoneOSVersion
#define IPhoneOSVersion 60000
NSLog(@"_IPHONE_OS_VERSION_MIN_REQUIRED after is %d",IPhoneOSVersion);
}
NSLog(@"_IPHONE_OS_VERSION_MIN_REQUIRED after is %d",IPhoneOSVersion);
如果我運行IOS7此代碼。在控制檯中,數據必須在70000之後打印,如_IPHONE_OS_VERSION_MIN_REQUIRED,但不幸的是,我在60000之後獲得了_IPHONE_OS_VERSION_MIN_REQUIRED。即使我在其他條件下也放了一個斷點,但那不是正在執行,而是宏值正在改變。可以請任何人讓我知道爲什麼宏觀價值如此變化。
嗨亨利感謝您response.Can請你讓我知道是有目標C中的任何其它概念,這將有助於我實現我的要求。 – Naresh
您的要求是什麼?您尚未在運行時明確說明您想要如何使用操作系統版本。 –