2012-01-23 62 views
0

我只是想知道在導入我的頭文件時是否必須檢查當前的ios版本。我有一個使用os5框架的應用程序。所以,如果我想我的應用程序在以前的版本中運行,我是否必須conditionnaly導入我的標題?或者我必須在實施中進行管理?導入頭幾個ios版本?

例如:如果我想使用Twitter/Twitter.h但希望我的應用程序運行在4.0。 是解決方案:

喜歡的東西:

#if CURRENT_OS > __IPHONE_5_0 
import <Twitter/Twitter.h> 
#endif 

或者

#import <Twitter/Twitter.h> 
... 
- (void) myMethod 
{ 
    NSComparisonResult r = [[[UIDevice currentDevice] systemVersion] compare:@"5.0"]; 
    if (r >= 0) 
    { 
     //do the thing 
    } 
    else 
    { 
     // do the workarround 

    } 
} 

在此先感謝您的幫助。

BR, Smazimute

回答

1

第一解決方案僅在編譯期間是有效的。這意味着在運行時檢查iOS版本沒有用處。 您可以使用它來區分同一個項目中的兩個目標(例如您的應用的免費和付費版本)。

第二個解決方案在運行時是有效的,所以我認爲這是在特定的iOS版本上做某些事情的最佳解決方案,但不幸的是,在導入框架時它是無用的。 要檢查的iOS版本使用本:

[[UIDevice currentDevice] systemVersion] 

如果你的目標只是導入年長的iOS不支持特定的框架,那麼你擁有它是唯一的解決辦法弱鏈接它。

看看: http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html

+0

非常感謝Beppe! – Smazimute

+0

不客氣 – Beppe