2011-11-30 94 views
0

我剛開始爲ios編寫應用程序。
我有2個問題。
我知道有一些代碼可以在ios4.3中正常工作,但不能在ios5中工作,反之亦然。我想知道,哪種編寫應用程序適用於ios4.3和ios5是最佳做法?檢查特定代碼部分的版本是否可以接受?爲ios4.3,ios5和ipad編寫應用程序的最佳做法

我也應該爲iPad寫相同的應用程序。所以,我想知道哪些是爲iphone編寫應用程序的最佳做法,這也適用於ipad?

感謝

回答

4

的iOS 5或iOS 4

的另一種方法以檢測版本是使用respondsToSelector:消息上的對象。與version方法相比,其優勢在於您不需要知道下一個版本的iOS將用於維護應用程序。 (例如,如果有新的5.0.2版本出現,你的應用應該知道「5.0.2」字符串比「5.0」更新?我同意代碼不會很複雜,但是使用respondsToSelector:更方便)

iPhone/iPod touch或iPad

我通常的方式來編寫通用的應用程序(如iPhone和iPad)是定義我的自定義的UIViewController類的基本實現,然後實現了高清版它繼承了默認行爲,但爲iPad定製(重寫方法效果很好,但委託模式可能更好:如果忘記實現方法,則會得到編譯警告)。

如果您從應用程序生命週期的開始階段開始使用不同的.xib文件(這是通過Xcode提供的通用模板獲得的),您最終可能只是從Interface Builder定義類,而不需要實現您的代碼中的任何運行時測試,以瞭解您是在iPhone還是iPad上運行。

+0

+1好的建議! – Cliff

1

可以使用獲得的版本:

[[UIDevice currentDevice] systemVersion]; 

的systemVersion返回一個字符串,如 「5.0」。然後可以使用字符串比較來比較字符串。例如:

NSString *requiredVersion = @"5.0"; 
NSString *currentVersion = [[UIDevice currentDevice] systemVersion]; 
if ([currentVersion compare:requiredVersion options:NSNumericSearch] != NSOrderedAscending) 
      isItSupported = TRUE; 

的文檔表明您可以使用以下方法來確定,如果你有一個iPhone或iPad:

[[UIDevice currentDevice] model]; 

我沒有,雖然用這個。 查看documentation

相關問題