我正在使用swiftyjson进行JSON解析。
我的问题是当url无效或url返回任何错误然后应用程序崩溃
这是代码
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
let url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId=\(self.playId)&key=AIzaSyB6LBckj5oqkbmroNPIhm7zru9vmsZR-w0"
self.json = JSON(data: (NSData(contentsOfURL: (NSURL(string: url)!)))!, options: NSJSONReadingOptions.MutableContainers, error: nil) // App is crash on this line
// END
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.tableView.reloadData()
})
如何检查网址有效或网址包含错误
答案 0 :(得分:1)
你应该使用类似这样的try-catch来防止崩溃:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
let url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId=\(self.playId)&key=AIzaSyB6LBckj5oqkbmroNPIhm7zru9vmsZR-w0"
if let JSONObject = try NSJSONSerialization.JSONObjectWithData((NSData(contentsOfURL: (NSURL(string: url)!)))?, options: .AllowFragments) as? [[String: AnyObject]],
}
// END
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.tableView.reloadData()
})