gpt4 book ai didi

ios - 无法在 Xcode 中构建,错误为 "[method] has been explicitly marked unavailable"

转载 作者:可可西里 更新时间:2023-11-01 00:17:55 25 4
gpt4 key购买 nike

我在我的项目中没有做任何更改,但在构建到我的设备时突然出现这些错误:

'componentsWithURL(_:resolvingAgainstBaseURL:)' is unavailable: use object construction 'NSURLComponents(URL:resolvingAgainstBaseURL:)'

'componentsWithURL(_:resolvingAgainstBaseURL:)' has been explicitly marked unavailable here (Foundation.NSURLComponents)

在这一行:

let urlComponents = NSURLComponents.componentsWithURL(url, resolvingAgainstBaseURL: false)

快速帮助说明该方法(和类 NSSURLComponents)自“iOS(8.0 及更高版本)”以来可用。文档说“在 iOS 7.0 及更高版本中可用”。奇怪。

如果我按照错误中的说明改用构造函数,则在访问 urlComponents.schemeurlComponents.URL 时会出现编译器错误。并不是说我抱有很高的期望——我的代码没有被改动过,并且已经编译好几个星期了,没有任何问题。

  • 我清理了产品和构建文件夹
  • 我恢复到一个已知的工作提交
  • 我关闭项目,重新启动 Xcode,重新启动操作系统,重新安装 Xcode
  • 尝试同时运行调试和发布
  • 尝试将部署目标更改为 8.0
  • 尝试在模拟器和设备上运行

在 Xcode 中唯一看起来不同的是,在我的项目名称下方它写着“ios sdk 8.1”。我只记得以前在那里看到过 8.0,但我从未更改过它,也没有更改回来的选项。不知道为什么会有所不同。

Xcode 版本 6.1 (6A1052d)

最佳答案

如错误消息中所示,在您的情况下,构造函数是 NSURLComponents(URL:resolvingAgainstBaseURL:)

let urlComponents = NSURLComponents(URL: url, resolvingAgainstBaseURL: false);

另请注意,这是一个“可失败的初始化程序”(现在)并返回一个可选的。所以你必须明确地解包结果或使用可选绑定(bind)进行测试:

if let urlComponents = NSURLComponents(URL: url, resolvingAgainstBaseURL: false) {
// Use urlComponents ..
} else {
// failed
}

关于ios - 无法在 Xcode 中构建,错误为 "[method] has been explicitly marked unavailable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763641/

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