我刚开始为ios写app 我有两个问题 我知道有些代码在ios4.3中工作正常,但在ios5中不起作用,反之亦然。我想知道,哪个是为ios4.3和ios5编写应用程序的最佳实践?是吗?可接受的运行时检查代码的特定部分的版本?
我也应该为ipad编写相同的应用程序。那么,我想知道哪个是为iphone编写应用程序的最佳实践,这也适用于ipad ??
由于
答案 0 :(得分:4)
iOS 5或iOS 4
检测版本的另一种方法是在对象上使用respondsToSelector:
消息。与version
方法相比的优势在于,您不需要知道iOS的下一个版本将是什么来维护您的应用程序。 (例如,如果新的5.0.2版本出现怎么办?你的应用程序应该知道“5.0.2”字符串比“5.0”更新?我同意编码并不复杂,而是使用{{1更方便)
iPhone / iPod Touch或iPad
我通常的代码通用应用程序(即iPhone和iPad)的方法是定义我的自定义UIViewController类的基本实现,然后实现它的HD版本,继承默认行为但为iPad自定义它(覆盖方法)效果很好,但委托模式可能更好:如果忘记实现方法,就会收到编译警告。
如果您从应用程序生命周期的开始使用不同的.xib文件(这是通过Xcode提供的通用模板获得的),您最终可能只是从Interface Builder定义类,并且不需要实现任何代码中的运行时测试,以确定您是在iPhone还是iPad上运行。
答案 1 :(得分: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。