Avatar
以下コードがエラーになる理由がよく分からないです。 どう見てもEncodableに準拠しているように見えるのですが... struct Foo: Encodable { // Type 'Foo' does not conform to protocol 'Encodable' let value: Encodable } encodeを実装したら解消しましたが、これも理由が説明できず。 やりたいことは実現でましたがモヤモヤしています。 struct Foo: Encodable { let value: Encodable enum CodingKeys: String, CodingKey { case value } func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(value, forKey: .value) } } let data = try! JSONEncoder().encode([Foo(value: 10), Foo(value: "bar")]) let json = String(data: data, encoding: .utf8)! // [{"value":10},{"value":"bar"}]