我是iOS开发的新手,刚刚使用iOS5 SDK和Xcode 4.2完成了我的第一个应用程序。现在的问题是我的应用程序将要求用户升级到iOS5,因为我使用Storyboard API为应用程序创建UI。故事板仅适用于iOS5。
我的问题是,如何使我的应用程序向后兼容至少iOS4?是否像使用nib文件创建UI一样简单?有人可以给我一个关于如何解决这个问题的例子吗?
此外,是否还有其他类似的陷阱需要注意,这会使我的应用向后兼容?
答案 0 :(得分:4)
一般来说,如果你想向后兼容,你应该:
微弱地链接框架。例如,Twitter.framework
仅适用于iOS> 5.0在Xcode的optional
部分中将框架标记为Link Binary with Libraries
。
照常导入框架的标题
#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版。
答案 1 :(得分:0)
UIStoryboardSegue是iOS 5,但该应用程序不会在iOS 4上运行。由于它不是编译时功能,您将不得不回到使用NIB。
您使用的任何仅在iOS 5中可用的方法在iOS 4中无效,因此任何处理故事板的方法都无法在iOS 4中使用。
答案 2 :(得分:0)
你应该研究https://github.com/doubleencore/DETweetComposeViewController。它是与TWTweetComposeViewController的iOS4兼容的重新实现。