我的应用程序有很多cpu和内存受到影响。 因此必须初始化由变量除以的不同单位。但是我想在编译时而不是在运行时知道。 运行时间可以知道如何区分。 如何在编译时区分?
知道如何区分操作系统版本,我不知道区分设备的法律。
以下代码仅限于划分。但是,我想详细介绍设备信息。 (iPod Touch 3 / iPod Touch4 / iPhone3GS / iPhone4 / iPhone4S / iPad / iPad2)
#if __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_4_0
const static NSTimeInterval TIME_INTERVAL = 0.3;
#elif __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_4_0
const static NSTimeInterval TIME_INTERVAL = 0.1;
#endif
答案 0 :(得分:2)
很明显,在编译时无法决定运行代码的设备。所有设备运行相同的可执行文件可以在编译时唯一可能的区别是armv6(比iPhone 3Gs更旧)和armv7之间的区别。
答案 1 :(得分:2)
您无法在编译时知道正在运行应用程序的设备 - 您编译应在所有设备上运行的单个应用程序。
答案 2 :(得分:0)
你可以这样做:
BOOL iPad = NO;
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 )
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) {
iPad = YES;
}
#else
isPad = NO;
#endif
但它只适用于OS 3.2或更高版本。它仍然没有在编译时解决,但它应该为您提供正确的设备。