我正在尝试将我的JSON响应data
从类型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类的值吗?
最佳答案
问题中提到的打印行是游戏对象解码的值。这就是XCode将会打印出的所有内容-解码之前原始对象的名称。从对象访问数据时,使用dataTest.myValue
起作用。
关于swift - 如何解决:无法将类型的值转换:GameData-可编码,为预期的参数数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55763850/