如果在链接中返回nil,如何检查SwiftyJSON

时间:2016-06-13 09:03:30

标签: swift swifty-json

如果我的链接没有返回数据,我如何签入swiftyJSON, 我收到此错误:致命错误:在解包可选值时意外发现nil

  var URLString = mylink
        URLString = URLString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!

        let url = NSURL(string: URLString)!


    let task = NSURLSession.sharedSession().dataTaskWithURL(url)  {(data, response, innerError) in


         let jsonData = NSData(contentsOfURL: url)! as NSData? //>> here is the error fatal error: unexpectedly found nil while unwrapping an Optional value



        let readableJson = JSON(data: jsonData!, options: NSJSONReadingOptions.MutableContainers, error: nil)
        let jjson = readableJson[0]
        let ID = jjson["Title"]


        })





        }
    task.resume()

1 个答案:

答案 0 :(得分:0)

你应该避免强行解开"!"

试试这个

func foo(urlAsString:String) {
    guard let
        urlAsStringEscaped = urlAsString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding),
        url = NSURL(string: urlAsStringEscaped)
        else { fatalError() }

    let task = NSURLSession.sharedSession().dataTaskWithURL(url)  {(data, response, error) in
        if let data = data where error == nil {
            let json = JSON(data: data)
            let id = json[0]["Title"].string
        }
    }
    task.resume()
}