尝试和捕获不是抛出消息和处理问题

时间:2016-02-23 13:25:06

标签: ios swift try-catch nsjsonserialization

我正在尝试在我的应用中定期向我的API发布一些内容,每3分钟一次,反过来我有时会提供一些数据,数据无法传递,我发现数据为零,这就是为什么我试图放一个{{ 1}}以下代码的概念:

try/catch

然而,catch语句永远不会起作用,每次我都没有,app var err: NSError? var json:NSDictionary! do { json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary } catch { dispatch_async(dispatch_get_main_queue(), { () -> Void in postCompleted(succeeded: false, msg: "Logged in.") }) } 内崩溃。

1 个答案:

答案 0 :(得分:1)

public class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject

因为data: NSData未解包。如果数据为零,则函数将崩溃。你添加

guard let data = data else { return }

并且尝试/捕获因为此函数可能会抛出错误。如果数据编码格式不正确,则此函数将抛出错误,您可以捕获catch。

希望它对你有用。