swift – 警卫不打开可选
发布时间:2020-12-14 05:27:13 所属栏目:百科 来源:网络整理
导读:我正在尝试处理一个 JSON对象,使用一个guard语句来展开它并转换为我想要的类型,但该值仍然被保存为可选项. guard let json = try? JSONSerialization.jsonObject(with: data) as? [String:Any] else { break}let result = json["Result"]// Error: Value of
我正在尝试处理一个
JSON对象,使用一个guard语句来展开它并转换为我想要的类型,但该值仍然被保存为可选项.
guard let json = try? JSONSerialization.jsonObject(with: data) as? [String:Any] else { break } let result = json["Result"] // Error: Value of optional type '[String:Any]?' not unwrapped 我在这里错过了什么吗? try? JSONSerialization.jsonObject(with: data) as? [String:Any] 被解释为 try? (JSONSerialization.jsonObject(with: data) as? [String:Any]) 这使它成为[String:Any]类型的“双重可选”. 通过设置括号来解决问题: guard let json = (try? JSONSerialization.jsonObject(with: data)) as? [String:Any] else { break } 只是为了好玩:另一个(不太明显?,混淆?)解决方案是 guard case let json?? = try? JSONSerialization.jsonObject(with: data) as? [String:Any] else { break } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |