我正在尝试将我的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/

10-13 02:23