如何在Swift 4.1中将混合值类型字典编码为JSON
发布时间:2020-12-14 05:00:08 所属栏目:百科 来源:网络整理
导读:下面的代码适用于 Xcode 9.2( Swift 4.0),但在Xcode 9.3(Swift 4.1)中出现错误. let dict: [String: Any] = [ "status_code": 5,"status_message": "message"]let data = try! JSONEncoder().encode(dict) // ^ generic parameter 'T' could not be inferred
下面的代码适用于
Xcode 9.2(
Swift 4.0),但在Xcode 9.3(Swift 4.1)中出现错误.
let dict: [String: Any] = [ "status_code": 5,"status_message": "message" ] let data = try! JSONEncoder().encode(dict) // ^ generic parameter 'T' could not be inferred 我已经尝试制作字典[String:Encodable],并使用两种字典类型的类型,具有相同的结果. Swift不允许您在泛型调用中指定类型,因此会产生编译器错误.在Swift 4.1中它应该是什么样的? 解决方法
字典是否可编码?
在Swift 4.1中,字典< Key,Value>仅当Key和Value本身可编码时才符合Encodable. Encodable(s)词典的示例 [String:Int] [String:String] [String:Double] 非Encodable(s)词典的示例 [String:Any] [String:UIView] 那么,你怎么解决你的问题? 结构 使用模型值可能是最佳解决方案 struct Status: Codable { let statusCode: Int let statusMessage: String } let status = Status(statusCode: 45,statusMessage: "message") let data = try? JSONEncoder().encode(status) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |