swift4 - 在 Swift 4 中使用 Anyobject 和 Codable

标签 swift4 codable decodable encodable

我正在尝试使用 swift 4 中的 Codable 解析 JSON。我关心的是

public class entStatusAndDescription : NSObject {
     var status :  Int?
     var statusDescription : String?
     var records : AnyObject?
}

我希望上述实体可编码,但“记录”不能是特定实体, 因为这是我将从 API 收到的基本实体。 解析完 status 和 statusDescription 后,我才能指定记录是哪个实体

例如我正在调用 API 获取客户详细信息,我收到的状态为 200,即成功,然后我会将记录解析为客户实体

最佳答案

如果一个类的所有成员都是可编码的,那么该类就是可编码的。当您使用通用成员时,您必须确保该成员是可编码的。在这种情况下,您可以创建其中 records 成员可以是任意的对象,但 records 始终从 Codable 继承。

这对我有用:

public class entStatusAndDescription<T: Codable>: Codable {
     var status :  Int?
     var statusDescription : String?
     var records : T?
}

关于swift4 - 在 Swift 4 中使用 Anyobject 和 Codable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49533252/

相关文章:

ios - Swift 中重命名属性的回退

尝试使用 FBSDK 快速注销 Facebook 时 iOS 应用程序崩溃

ios - Json 解码为具有动态值类/结构类型的 swift 类

ios - 解码具有不同类型的 Json 对象

swift - JSON 的正确类结构被推送到本地 Realm

json - swift 可编码 : Decode different array of items with same root objects

swift4 - 使 UIColor 可编码

json - 更新结构中的特定值

swift - Generic Decodable 停止使用 swift 4.1

json - 如何解码多种类型的嵌套数组?