如何在编译时区分iPod/iPhone/iPad设备信息?

如何在编译时区分iPod/iPhone/iPad设备信息?,iphone,Iphone,我的应用程序有很多cpu和内存都会受到影响。 因此,必须初始化被变量除以的不同单位。但我想在编译时而不是运行时了解这一点。 运行时间可以知道如何区分。 在编译时如何区分 知道如何区分操作系统版本,而我不知道区分设备的法律 下面的代码仅适用于os divide。但是,我想了解详细的设备信息。 (iPod Touch 3/iPod Touch 4/iPhone3GS/iPhone4/iPhone4S/iPad/iPad2) #如果需要IPHONE操作系统版本(最低版本)(IPHONE 4) 常量静态

我的应用程序有很多cpu和内存都会受到影响。 因此,必须初始化被变量除以的不同单位。但我想在编译时而不是运行时了解这一点。 运行时间可以知道如何区分。 在编译时如何区分

知道如何区分操作系统版本,而我不知道区分设备的法律

下面的代码仅适用于os divide。但是,我想了解详细的设备信息。 (iPod Touch 3/iPod Touch 4/iPhone3GS/iPhone4/iPhone4S/iPad/iPad2)

#如果需要IPHONE操作系统版本(最低版本)(IPHONE 4)
常量静态NSTimeInterval时间间隔=0.1;
#恩迪夫

很明显,在编译时无法确定代码在哪个设备上运行。所有设备都运行相同的可执行文件。在编译时唯一可能的区别是armv6(比iPhone 3Gs旧的东西)和armv7之间的区别。

很明显,在编译时无法确定代码在哪个设备上运行。所有设备都运行相同的可执行文件。在编译时唯一可能的区别是armv6(比iPhone 3Gs更旧的版本)和armv7之间的区别。

在编译时,您无法知道应用程序运行在什么设备上-您只编译一个应用程序,该应用程序应在所有设备上运行

在编译时,您无法知道应用程序正在哪个设备上运行—您只需编译一个应在所有设备上运行的应用程序

您可以这样做:

BOOL iPad = NO;
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 )
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) {
    iPad = YES;
}
#else
isPad = NO;
#endif

但它只能在OS3.2或更高版本上运行。编译时仍无法解决此问题,但它应该可以为您提供正确的设备。

您可以执行以下操作:

BOOL iPad = NO;
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 )
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) {
    iPad = YES;
}
#else
isPad = NO;
#endif
但它只能在OS3.2或更高版本上运行。编译时仍无法解决此问题,但它会为您提供正确的设备。

同时检查:是否有LIB帮助确定设备信息。同时检查:是否有LIB帮助确定设备信息。