65得票1回答
为字符串资源格式创建自定义的Swift编码器/解码器

我一直在尝试使用 Codable 并读写 JSON 文件。现在我想编写一个自定义的 Coder,可以读写 iOS .strings 文件。有人能帮我吗?我找到了协议 Encoder 和 Decoder,但我不知道应该实现什么:class StringsEncoder {} extension...

58得票13回答
如何在可编码类型中使用Any

我目前在我的项目中使用 Codable 类型并遇到了一个问题。 struct Person: Codable { var id: Any } 在上面的代码中,id 可以是 String 或 Int。这就是为什么 id 是 Any 类型的原因。 我知道 Any 不是 Codable。...

18得票2回答
可编码类的继承

我正在使用Swift 4和Xcode 9.2编写程序。在编写可编码的类(确切地说是类,而不是结构体)时遇到了困难。当我尝试从一个类继承另一个类时,JSONEncoder不会将子类中的所有属性都纳入考虑。请看: class BasicData: Encodable { let a: ...

17得票6回答
为什么我们不能在函数中使用协议 `Encodable` 作为类型?

我正在尝试通过符合Encodable协议的编码模型获取数据。但是无法像下面的代码一样调用encode函数: // MARK: - Demo2 class TestClass2: NSObject, Encodable { var x = 1 var y = 2 } va...

14得票2回答
将Codable/Encodable转换为JSON对象的Swift方法

最近我在项目中使用了Codable,为了从符合Encodable的类型获取一个JSON对象,我编写了这个扩展:extension Encodable { /// Converting object to postable JSON func toJSON(_ encoder:...

10得票3回答
将协议编码并存储在数组中

我有一个动物协议,其中包含2个结构体,以及一个农场结构体,存储着动物的列表。然后,我让它们都符合Codable以便存储到文件中,但出现了错误 cannot automatically synthesize 'Encodable' because '[Animal]' does not conf...

10得票2回答
使用Swift 4中的JSONEncoder将[String:Encodable]字典编码为JSON

我很好奇如何将一个键为String类型,值为Encodable类型的字典编码成JSON格式。 例如: let dict: [String: Encodable] = [ "Int": 1, "Double": 3.14, "Bool": false, "St...

8得票3回答
处理包含多种类型的JSON数组 - Swift 4可解码的

我正在尝试使用Swift 4中的Decodable来解析一个包含两种不同类型对象的数组。数据看起来像这样,其中included数组是包含Member和ImageMedium对象的数组: { "data": [{ "id": "8f7cbbac-c133-4b5e-a2ec-1f3...

8得票4回答
Swift Encodable、Decodable与Codable的区别

发现在苹果的文档中,Codable协议由Encodable和Decodable组成。因此, Codable = Encodable & Decodable 现在,假设我实现了以下类: class X: Codable { var name: String } clas...

8得票3回答
如何使用Encodable在Swift中编码包含已编码值的结构体

想象一个包含值的数据结构,其中 contents 是已编码的 JSON 片段。 let partial = """ { "foo": "Foo", "bar": 1 } """ struct Document { let contents: String let other: [S...