2010-07-21 106 views
1
  1. 如何检测我的应用程序是在iPhone或iPad上运行的,以及它运行的是哪个iOS版本?
  2. 我可以使用与#if _OS4.0#if IPAD类似的方式使用预处理器宏吗?
  3. 这是犹太教,或者我应该分开建立提交?

回答

1

UI_USER_INTERFACE_IDIOM()可用于检测设备。 可能的返回值为:

  • UIUserInterfaceIdiomPhone
  • UIUserInterfaceIdiomPad

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {}

另外还有__IPHONE_3_2定义,可以帮助:

#ifndef __IPHONE_3_2 
    /* ... */ 
#elif 
    /* ... */ 
#endif 
+0

这非常有帮助谢谢。但我遇到了一些其他问题。当我尝试使用iPad目标进行构建时,我的所有iAd代码都会中断。 – devMeSilus 2010-07-21 16:43:34

2

一般采用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]); 
} 

但是,有时候你无法避免它检查系统版本。

+0

请注意,即使在3.2之前,“UISwipeGestureRecognizer”和“addGestureRecognizer:”也存在 - 它们只是私人的。 – kennytm 2010-07-21 17:18:53

+0

对,不好的例子:)更新。 – christo16 2010-07-21 17:27:53

相关问题