Xcode 7 禁止弃用的警告

Xcode 7 suppress deprecated warnings

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

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

我试过:

  1. project>target>Build Phases>点击合适的文件,然后select flag -w
  2. project>target>Build Phases>点击合适的文件,然后select flag -(特定的错误标志)
  3. project>project>Build Settings>Apple LLVM 7.0 - Warnings - All Languages>Depreciated Functions> 否
  4. project>project>Build Settings>Apple LLVM 7.0 - 警告 - Objective C>Overriding Depreciated Objective C Methods>No
  5. 尝试寻找 pragma 替代方案,但看起来不可能
  6. 编辑:无论设备上的 OS 版本如何,我都需要使用折旧方法

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

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

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

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

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

最简单的方法是拥有一个 Objective-C 文件,其中包含与已弃用的方法名称相似的方法,然后调用它们。假设 methodX 已被弃用,那么您添加

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

并放置一个编译器指令来忽略围绕它弃用的方法。好的是,它会告诉您在代码中的确切位置使用了已弃用的方法,因为最终您想摆脱它们(当 iOS 11 发布时)