簡體   English   中英

如何使iOS5應用與iOS4向后兼容?

[英]How can I make an iOS5 App backward compatible with iOS4?

我是iOS開發的新手,剛剛使用iOS5 SDK和Xcode 4.2完成了我的第一個應用程序。 現在的問題是我的應用程序將要求用戶升級到iOS5,因為我使用Storyboard API為應用程序創建了UI。 故事板僅在iOS5中可用。

我的問題是,如何使我的應用程序至少與iOS4向后兼容? 它像使用nib文件創建UI一樣簡單嗎? 有人可以給我指出如何執行此操作的示例嗎?

另外,還有其他類似的陷阱需要引起我的注意嗎?

通常,如果要向后兼容,應該:

  1. 弱鏈接框架。 例如, Twitter.framework僅在iOS> 5.0中可用,因此在Xcode的“ Link Binary with Libraries部分中將該框架標記為optional

  2. 照常導入框架的標題

     #import <Twitter.Twitter.h> 
  3. 與其檢查“操作系統版本是否大於5.0”,不如檢查一下:

    • 具有特定名稱的類是否可用:

       Class TWTweetClass = NSClassFromString(@"TWTweetComposeViewController"); if (TWTweetClass){ // Use the new stuff TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init]; // etc. } else { // Handle the case when the class is not available } 
    • 給定對象是否響應選擇器:

       if([someObject doesRespondToSelector:@selector(someNewlyAvailableSelector:)]){ [someObject performSelector:@selector(someNewSelector:)]; } 

這在Twitter框架上很好用,但是情節提要在這方面有所不同,因為它不像可以在運行時檢查的可選框架。 如果要使用情節提要,則用戶必須至少具有iOS 5.0版。

您應該查看https://github.com/doubleencore/DETweetComposeViewController 它是TWTweetComposeViewController的iOS4兼容重新實現。

UIStoryboardSegue是iOS 5,只有該應用程序無法在iOS 4上運行。由於它不是編譯時功能,因此您必須重新使用NIB。

您使用的僅在iOS 5中可用的任何方法都無法在iOS 4中使用,這意味着處理情節提要的任何方法在iOS 4中均無法使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM