我刚刚开始为ios编写应用程序。
我有两个问题。
我知道有些代码在ios4.3中运行得很好,但在ios5中却不能运行,反之亦然。我想知道,在ios4.3和iOS5上编写应用程序的最佳实践是什么?运行时检查特定代码部分的版本是否可以接受?
我也应该为ipad写同样的应用程序。那么,我想知道为iphone编写也能在ipad上运行的应用程序的最佳实践是什么??
谢谢
发布于 2011-12-01 06:53:56
iOS 5或iOS 4
检测版本的另一种方法是在对象上使用respondsToSelector:消息。与version方法相比的优点是,您不需要知道下一个版本的iOS将用于维护您的应用程序。(例如,如果出现新的5.0.2版本怎么办?你的应用程序应该知道"5.0.2“字符串比"5.0”更新吗?我同意编码并不复杂,但使用respondsToSelector:要方便得多。)
iPhone/iPod Touch或iPad
我编写通用应用程序(即iPhone和iPad)的常用方法是定义自定义UIViewController类的基本实现,然后实现它的HD版本,继承默认行为,但为iPad自定义它(覆盖方法效果很好,但委托模式可能更好:如果您忘记实现方法,则会收到编译警告)。
如果在应用程序生命周期的开始阶段使用不同的.xib文件(这是通过Xcode提供的通用模板获得的),那么最终可能只需要从Interface Builder定义类,而不需要在代码中实现任何运行时测试来了解您是在iPhone上运行还是在iPad上运行。
发布于 2011-12-01 06:29:22
您可以使用以下命令获取版本:
[[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。
https://stackoverflow.com/questions/8333804
复制相似问题