swift2 Xcode 7抑制过时警告

yqlxgs2m  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(235)

很遗憾,为了兼容性,我需要使用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 -(错误的特定标志)
    1.项目〉项目〉构建设置〉Apple LLVM 7.0 -警告-所有语言〉折旧函数〉否
    1.项目〉项目〉构建设置〉Apple LLVM 7.0 -警告-目标C〉改写折旧目标C方法〉否
    1.试图查找杂注替代项,但似乎不可能
    1.编辑:无论设备上的操作系统版本如何,我都需要使用折旧方法
    我可以在ObjC中抑制警告,但它在Swift 2.0中似乎不起作用,我不得不承认,它开始真正困扰我,我知道我最终必须使用不同的方法,但现在这是不可能的。
    如何在Xcode 7/Swift 2中抑制警告?
ryoqjall

ryoqjall1#

我是一个谁问了上面的问题,如果有人在这里寻找答案,同样的问题,这里是我已经发现到目前为止:第1-6点在swift中是无效的,因为没有预编译器。(如果真的是这样,我希望苹果在我试图使用-w时警告我)
如果你真的需要使用过时的方法,并且不愿意忍受它产生的警告,那么你可以将你的代码的这一部分作为一个框架添加,并为以前的操作系统版本编译你的项目的这一部分。最好根本不使用过时的方法!http://www.rockhoppertech.com/blog/swift-framework-creation/
我希望这对某人有帮助,如果它是错误的,那么请告诉我为什么和如何在下面:)

oymdgrw7

oymdgrw72#

最简单的方法是在Objective-C文件中填充与已弃用的方法名称相似的方法,然后调用它们。

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

并在这周围放一个编译器指令来忽略弃用的方法。好的地方在于它告诉你在代码中你到底在哪里使用了弃用的方法,因为最终你会想摆脱它们(当iOS 11发布时)

相关问题