这项检查是否适用于iPad和iPhone?我想我只是对在iPad上使用"iPhone"一词感到困惑.我还需要检查iPad OS版本,还是宏指向一般的iOS版本.
#if __IPHONE_4_0
// Do stuff
#elif __IPHONE_3_0
// Do 3.0 stuff
#endif
Run Code Online (Sandbox Code Playgroud)
问题__IPHONE_3_0是,即使定位到其他iOS版本,也会定义它们; 它们是版本标识常量,而不是标识目标iOS版本的常量.使用__IPHONE_OS_VERSION_MIN_REQUIRED
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
#elif __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0
#else
#endif
Run Code Online (Sandbox Code Playgroud)
甚至:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 40000
#elif __IPHONE_OS_VERSION_MIN_REQUIRED >= 30000
#else
#endif
Run Code Online (Sandbox Code Playgroud)
解决" 如何定位特定iPhone版本? " 的评论中提到的错误__IPHONE_OS_VERSION_MAX_ALLOWED,在有限的情况下也可能有用.
并且,是的,应用程序将在哪个设备上运行并不重要.这些常量由编译器定义,并且不存在于设备上.预处理器运行后,不会留下任何宏.虽然设备本身存在差异,但iPhone和iPad都运行iOS,这就是你真正的目标.
| 归档时间: |
|
| 查看次数: |
2241 次 |
| 最近记录: |