【发布时间】:2016-12-02 21:59:24
【问题描述】:
我的 Swift 应用中有这段代码
func parseJSON() {
let urlString = "www.websitethatlinkstoJSONfile.com"
if NSURL(string: urlString) == true {
let url = NSURL(string: urlString)
let data = try? NSData(contentsOfURL: url!, options: []) as NSData
let json = NSData(data: data!)
// 更多代码
但是,即使链接确实有效并且是正确的,if 语句从未遇到过,它一直跳过它并移动到 else。所以我把代码改成了
if NSURL(string: urlString) != false
而且效果很好。我不知道为什么?
【问题讨论】:
-
NSURL(string:)将为任何字符串返回 true,无论是有效的 url 还是只是随机字符。 -
在这种情况下,在 Swift 中鼓励使用保护语句来检查 nil。此外,您可能需要研究 Equatable 协议以供将来参考。
标签: swift xcode if-statement boolean nsurl