こんにちは、私のアプリケーションの 1 つで、そのアプリを IOS6 と IOS7 でサポートする必要があります。そのためには、まず現在のデバイスのバージョンを知る必要があります。そのために、1 つのマクロを定義し、そのマクロをリファレンスとして使用してタスクを達成しようとしています。私が書いたコードは以下の通りです。
.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 を取得しています。else 条件にもブレークポイントを設定しましたが、それは実行されていませんが、マクロ値が変化しています。誰か教えてください。マクロ値がこのように変化する理由を知っています。