[英]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一樣簡單嗎? 有人可以給我指出如何執行此操作的示例嗎?
另外,還有其他類似的陷阱需要引起我的注意嗎?
通常,如果要向后兼容,應該:
弱鏈接框架。 例如, Twitter.framework
僅在iOS> 5.0中可用,因此在Xcode的“ Link Binary with Libraries
部分中將該框架標記為optional
。
照常導入框架的標題
#import <Twitter.Twitter.h>
與其檢查“操作系統版本是否大於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.