将 String 转换为 URL(为什么结果变量为 nil)
Convert String to URL (Why is resulting variable nil)
我正在尝试从字符串值创建一个 URL 变量。我不明白为什么结果 URL 是 nil
我已经建立了一个新的 Xcode macOS 项目,在视图上放置了一个简单的按钮,为该按钮创建了一个动作并实现了以下代码。结果 url 为零。
我在 Swift playground 上尝试了同样的方法并且成功了...
@IBAction func buttonClicked(_ sender: Any) {
let urlAsString = "http://www.google.de/"
let url = URL(string: urlAsString)
if url != nil {
// Do work...
}
}
urlAsString 是“http://www.google.de/”但是
url 为零
debugger
您在调试器中发现了一个错误!
[此错误预计将在 Xcode 12.5 中修复。]
重现它很容易:
我们已在条件内部 的断点处暂停。所以很明显 url
不是 不是 nil
否则我们根本不会在这里。
证明这一点的另一种方法是在控制台中 po url
(参见此屏幕截图的右下角):
然而,url
在工具提示和变量列表中都显示为 nil
。所以调试器只是在骗你:url
不是零。别担心,要开心。您的代码运行良好。
EDIT 该错误与 Swift Foundation 叠加层有关。如果将 url
的声明更改为:
let url = NSURL(string: urlAsString)
...然后一切正常。
另见
我正在尝试从字符串值创建一个 URL 变量。我不明白为什么结果 URL 是 nil
我已经建立了一个新的 Xcode macOS 项目,在视图上放置了一个简单的按钮,为该按钮创建了一个动作并实现了以下代码。结果 url 为零。
我在 Swift playground 上尝试了同样的方法并且成功了...
@IBAction func buttonClicked(_ sender: Any) {
let urlAsString = "http://www.google.de/"
let url = URL(string: urlAsString)
if url != nil {
// Do work...
}
}
urlAsString 是“http://www.google.de/”但是 url 为零
debugger
您在调试器中发现了一个错误!
[此错误预计将在 Xcode 12.5 中修复。]
重现它很容易:
我们已在条件内部 的断点处暂停。所以很明显 url
不是 不是 nil
否则我们根本不会在这里。
证明这一点的另一种方法是在控制台中 po url
(参见此屏幕截图的右下角):
然而,url
在工具提示和变量列表中都显示为 nil
。所以调试器只是在骗你:url
不是零。别担心,要开心。您的代码运行良好。
EDIT 该错误与 Swift Foundation 叠加层有关。如果将 url
的声明更改为:
let url = NSURL(string: urlAsString)
...然后一切正常。
另见