gpt4 book ai didi

iphone - 如何支持从 iOS 4.3 到 iOS 7 版本的应用程序

转载 作者:行者123 更新时间:2023-12-03 20:25:01 25 4
gpt4 key购买 nike

我已经使用 xcode 5 构建了我的应用程序以支持 ios 6 或更高版本。我希望相同的应用程序可以在低于 6 的版本上运行。我没有使用自动布局。我更改了所有 nib 文件以使用 os 4.3 或更高版本构建。但是已弃用的方法不适用于旧版本。支持多个 ios 版本的最佳方法是什么(在我的情况下是 ios 4.3到ios 7.0)?.

最佳答案

http://www.raywenderlich.com/42591/supporting-multiple-ios-versions-and-devices可以给你好的建议。

文章的简短部分:

不支持的类

有时您想使用存在于的类 您的基础 SDK,但不在您的部署目标中。为此,您需要 在运行时检查此类的可用性以避免崩溃 你的应用程序。它会崩溃,因为这是 Objetive-C 运行时会发生的事情 如果您尝试使用不存在的类,请执行以下操作。从 iOS 4.2 开始, 类是弱链接的,因此您可以使用 +class 方法来执行 运行时检查。例如:

 if ([SLComposeViewController class]) {
//Safe to use SLComposeViewController } else {
//Fail gracefully }

不支持的方法

同样,如果您在基础 SDK 中使用部署中不存在的方法 目标,您可以通过一点自省(introspection)来避免严重的崩溃。 方法 -respondsToSelector:+instancesRespondToSelector: 将 两者都可以解决问题,如下面的代码示例所示:

 if
([self.image respondsToSelector:@selector(resizableImageWithCapInsets:resizingMode:)])
{
//Safe to use this way of creating resizable images } else {
//Fail gracefully }

验证类方法是否存在也是如此,只不过您在类上调用respondsToSelector: 本身,就像这样:

if ([UIView
respondsToSelector:@selector(requiresConstraintBasedLayout)]) {
//Safe to use this method } else {
//Fail gracefully }

关于iphone - 如何支持从 iOS 4.3 到 iOS 7 版本的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20991850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com