设置一个应用程序来检测操作系统版本。和 iPhone 或 iPad
Posted
技术标签:
【中文标题】设置一个应用程序来检测操作系统版本。和 iPhone 或 iPad【英文标题】:Setup an app to detect OS ver. and iPhone or iPad 【发布时间】:2010-07-21 16:04:48 【问题描述】:-
如何检测我的应用程序是在 iPhone 还是 iPad 上运行,以及它运行的 ios 版本是什么?
我能否以类似于
#if _OS4.0
或#if IPAD
或类似方式的方式使用预处理器宏?
这是 kosher,还是我应该只制作单独的版本以供提交?
【问题讨论】:
【参考方案1】:通常使用基于操作系统版本的功能是不好的做法。
根据建议,尽可能使用 UI_USER_INTERFACE_IDIOM()。同时使用:
Class qlPreview = NSClassFromString(@"QLPreviewController");
和
UIScreen *mainScreen = [UIScreen mainScreen];
if([mainScreen respondsToSelector:@selector(scale)])
NSLog(@"screen scale: %f",[mainScreen scale]);
但是,有时您无法避免它检查系统版本。
【讨论】:
请注意,UISwipeGestureRecognizer
和 addGestureRecognizer:
甚至在 3.2 之前就存在——它们只是私有的。
对,不好的例子 :) 更新了。【参考方案2】:
UI_USER_INTERFACE_IDIOM() 可用于检测设备。 可能的返回值是:
UIUserInterfaceIdiomPhone UIUserInterfaceIdiomPadif( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
还有 __IPHONE_3_2
定义可以提供帮助:
#ifndef __IPHONE_3_2
/* ... */
#elif
/* ... */
#endif
【讨论】:
这很有帮助,谢谢。不过,我遇到了其他一些问题。当我尝试使用我的 iPad 目标进行构建时,我的 iAd 内容的所有代码都会中断。以上是关于设置一个应用程序来检测操作系统版本。和 iPhone 或 iPad的主要内容,如果未能解决你的问题,请参考以下文章