2010-07-21 53 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

相關問題