设置应用程序以检测操作系统版本。和iPhone或iPad
问题描述:
- 如何检测我的应用程序是在iPhone或iPad上运行的,以及它运行的是哪个iOS版本?
- 我可以使用与
#if _OS4.0
或#if IPAD
类似的方式使用预处理器宏吗? - 这是犹太教,或者我应该分开建立提交?
答
UI_USER_INTERFACE_IDIOM()可用于检测设备。 可能的返回值为:
- UIUserInterfaceIdiomPhone
- UIUserInterfaceIdiomPad
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {}
另外还有__IPHONE_3_2
定义,可以帮助:
#ifndef __IPHONE_3_2
/* ... */
#elif
/* ... */
#endif
答
一般采用featu基于OS版本的res是不好的做法。
如所提供的,尽可能使用UI_USER_INTERFACE_IDIOM()。还可以使用:
Class qlPreview = NSClassFromString(@"QLPreviewController");
和
UIScreen *mainScreen = [UIScreen mainScreen];
if([mainScreen respondsToSelector:@selector(scale)]){
NSLog(@"screen scale: %f",[mainScreen scale]);
}
但是,有时候你无法避免它检查系统版本。
这非常有帮助谢谢。但我遇到了一些其他问题。当我尝试使用iPad目标进行构建时,我的所有iAd代码都会中断。 – devMeSilus 2010-07-21 16:43:34