-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
What did you do?
Copied example code from: https://getstream.github.io/stream-swift/Protocols/CollectionObjectProtocol.html
final class Food: CollectionObject {
private enum CodingKeys: String, CodingKey {
case name
}
var name: String
init(name: String, id: String? = nil) {
self.name = name
super.init(collectionName: "food", id: id)
}
required init(from decoder: Decoder) throws {
let dataContainer = try decoder.container(keyedBy: DataCodingKeys.self)
let container = try dataContainer.nestedContainer(keyedBy: CodingKeys.self, forKey: .data)
name = try container.decode(String.self, forKey: .name)
try super.init(from: decoder)
}
override func encode(to encoder: Encoder) throws {
var dataContainer = encoder.container(keyedBy: DataCodingKeys.self)
var container = dataContainer.nestedContainer(keyedBy: CodingKeys.self, forKey: .data)
try container.encode(name, forKey: .name)
try super.encode(to: encoder)
}
}
What did you expect to happen?
Expected the code to compile at least.
What happened instead?
Got an error: 'required' initializer 'init(collectionName:id:)' must be provided by subclass of 'CollectionObject'
GetStream Environment
GetStream version:
2.2.4
Xcode version:
12.4
Swift version:
5
Platform(s) running GetStream:
iOS
macOS version running Xcode:
Big Sur
Metadata
Metadata
Assignees
Labels
No labels