我正在尝试将类型data
的JSON响应AnyObject?
解码回可以在控制台中打印出来或与之交互的内容。
读回数据,然后解码打印projectName.GameData
这是细分,数据从响应中返回,其类型为:Any?
,因为它以
class GameData : Codable {
var isPlayerOneTurn: Bool!
var wasCreated: Bool!
var playerOne: String!
var playerTwo: String!
var board: [[Int]]!
init() {
}
}
尝试解码时遇到的当前错误是Cannot convert value of type 'GameData' to expected argument type 'Data'
代码:
let decoder = JSONDecoder()
let dataTest = try? decoder.decode(GameData.self, from: data)
我在GameData类上缺少正确的init()方法吗?
更新:
数据已更改为此处的Data
类型:谢谢@rmaddy指出了这一点。
let data = data as? Data
let decoder = JSONDecoder()
let dataTest = try? decoder.decode(GameData.self, from: data!)
print("data: \(String(describing: dataTest))")
打印行仍显示data: Optional(projectName.GameData)
这里仍然有什么问题,不允许我查看GameData类的值吗?
答案 0 :(得分:0)
问题中提到的打印行是游戏对象解码的值。这就是XCode将会打印出的所有内容-解码之前原始对象的名称。从对象访问数据时,使用dataTest.myValue
有用。