【问题标题】:Swift: "nil while unwrapping an Optional value" that is NOT nil斯威夫特:“在展开可选值时为零”不是零
【发布时间】:2014-08-07 21:19:55
【问题描述】:

我有带有图像 url 的 String 的字典。当我尝试从此Strings 创建NSURL 对象时,编译器向我抛出错误“致命错误:在展开可选值时意外发现nil”。我搜索了那个问题并没有找到解决方案。每个人都说“你的变量为零”之类的话。但我的变量不能为零,我的代码日志也显示了这一点。

这是我的代码:

var article: [String:String!]!
...
//viewDidLoad method

let imageURLString : String = article["image"]!

println(imageURLString) // log: http://domain.com/img/path.jpg

let imgURL : NSURL = NSURL.URLWithString(imageURLString) // error here

我收到“致命错误:在展开可选值时意外发现 nil”

问题出在哪里?希望有人能帮忙。

【问题讨论】:

    标签: ios string swift nsurl optional


    【解决方案1】:

    如果 URL 无效,NSURL 的 URLWithString 可能会失败(因此返回 nil)。试试:

    let imgURL: NSURL? = NSURL.URLWithString(imageURLString) 
    

    然后您可以在使用之前测试 imgURL 以查看它是否为 nil。

    【讨论】:

    • 例如,如果"http://domain.com/img/path.jpg" 之前或之后有空格字符或其他空格(否则看起来像一个有效的 URL),就会发生这种情况。
    • 谢谢你们。问题在于我的 XML 文件中的空格字符。谢谢大家。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2015-05-12
    • 2016-04-18
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多