我已使用Xcode 7升级了我的Xcode项目。我使用Objective-C
。
当我在部署目标中定位iOS 9.0
时,我发出了36条警告:
UIAlertView
已弃用,请使用UIAlertController
。ABAddressBookRef
已弃用,请使用CNContactStore
... setStatusBarStyle:animated
已弃用,请使用[UIViewController preferredStatusBarStyle]
和其他一些......
好吧,我希望与iOS 9
和至少iOS 8
保持兼容。
我是否必须忽略这些警告以保持与不同操作系统的兼容性?
如果我使用{8} iOS 8,它有效吗?
我做的最好的事情是什么?使用已弃用或替换为新代码?
答案 0 :(得分:3)
如果您不再定位旧版iOS,则建议您更新已弃用的代码。尽管如此,苹果公司的SDK仍然正式支持不推荐使用的方法,但有一天Apple可能会删除这些方法。
以下是Apple关于弃用的说法:
Apple不时会向API添加弃用宏以表明 这些API不应再用于主动开发。当一个 贬值发生,它不是一个直接的生命终结 指定的API。相反,它是宽限期的开始 从那个API过渡到更新更现代的 更换。不推荐使用的API通常保持存在且可用于 系统在发布后的合理时间内发布 他们被弃用了。然而,他们的积极发展停止了 API只接收微小的变化 - 以适应安全补丁或 修复其他关键错误。弃用的API可能会被完全删除 来自未来版本的操作系统。
作为开发人员,避免使用已弃用的API非常重要 在您的代码中尽快。 至少要编写新代码 绝不应该使用弃用的API。如果你有现有的代码 使用已弃用的API,尽快更新该代码。 幸运的是,编译器在发现使用时会生成警告 您的代码中已弃用的API,您可以使用这些警告 跟踪并删除对这些API的所有引用。
https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS7.html
答案 1 :(得分:2)
"已过时"指至少以下之一:
在定位不推荐使用API的操作系统版本时,需要考虑的事项。
但是,弃用警告基于您项目的最低部署目标。如果您告诉Xcode您要为iOS 7及更高版本构建,则您不会看到警告适用于iOS 8或iOS 9时弃用的API。
如果要部署回较旧的最低操作系统目标,但使用较新操作系统的功能,则需要在使用较新功能的代码中进行可用性检查。有关兼容性/可用性和弱链接的一般情况,请参见Apple's docs,和/或对于Swift,请参见Checking API Availability。