【问题标题】:Xcode 7 suppress deprecated warningsXcode 7 抑制已弃用的警告
【发布时间】:2015-10-20 11:23:39
【问题描述】:

遗憾的是,为了兼容性,我需要使用 iOS 9 中已弃用的方法,并且在尝试 15 小时后它会生成我无法抑制的警告。 示例:

'CFWriteStreamCreateWithFTPURL' was deprecated in iOS 9.0: Use NSURLSessionAPI for ftp requests'

我试过了:

  1. project>target>Build Phases>点击合适的文件,然后选择flag -w
  2. project>target>Build Phases>点击合适的文件,然后选择flag -(specific flag for error)
  3. project>project>Build Settings>Apple LLVM 7.0 - Warnings - All Languages>Depreciated Functions> No
  4. 项目>项目>构建设置>Apple LLVM 7.0 - 警告 - 目标 C>覆盖已弃用的目标 C 方法>否
  5. 尝试寻找 pragma 替代方案,但似乎不可能
  6. 编辑:无论设备上的操作系统版本如何,我都需要使用折旧的方法

我可以在 ObjC 中抑制警告,但它似乎在 Swift 2.0 中不起作用,我不得不承认它开始真正困扰我,我知道我最终必须使用不同的方法,但现在它是不可能的。

如何在 Xcode 7/Swift 2 中抑制警告?

【问题讨论】:

  • 感谢您的快速回复,但在您的线程中条件编译似乎是建议的答案,但这对我来说可能不是一个好的解决方案,因为无论操作系统版本如何,我都需要使用折旧的方法。

标签: swift2 xcode7 suppress-warnings


【解决方案1】:

我是提出上述问题的人,如果有人在这里寻找相同问题的答案,那么我到目前为止发现的内容如下: 第 1-6 点在 swift 中无效,因为没有预编译器。 (如果真的是这样,我希望苹果在我尝试使用 -w 时会警告我)

如果您确实需要使用已弃用的方法并且不愿意忍受它生成的警告,那么您可以将代码的那部分添加为框架,并为以前的操作系统版本编译项目的那部分。最好不要使用已弃用的方法! http://www.rockhoppertech.com/blog/swift-framework-creation/

我希望这对某人有所帮助,如果有错误,请在下面告诉我原因和方法:)

【讨论】:

    【解决方案2】:

    最简单的方法是创建一个包含与不推荐使用的方法名称相似的方法的 Objective-C 文件,然后调用它们。假设methodX已被弃用,那么你添加

    - (void)methodX_deprecated {
        [self methodX];
    }
    

    并放置一个编译器指令以忽略不推荐使用的方法。好消息是它可以告诉您在代码中的确切位置使用了不推荐使用的方法,因为最终您希望摆脱它们(当 iOS 11 发布时)

    【讨论】:

    • 所以你桥接到 objc 因为在 objc 中你可以使用预编译器来消除警告,然后再次桥接到你需要使用的已弃用的 swift 方法?
    猜你喜欢
    • 2011-02-06
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2019-01-13
    • 2023-03-22
    • 2015-06-16
    相关资源
    最近更新 更多