Encoding & Decoding
MBurgerSwift has a built in system that can be used to init your custom constructs. You have only to make your construct conform to MBDecodable protocol.
For example a News that's reflecting a newsfeed block in MBurger:
class News: MBDecodable {
let text: String
let images: [MBImage]
let link: String
let date: Date
enum DecoderCodingKeys: String, CodingKey {
case text
case images
case link
case date
}
required init(from decoder: MBDecoder) throws {
let container = try decoder.container(keyedBy: DecoderCodingKeys.self)
text = try container.decode(String.self, forKey: .text)
images = try container.decode([MBImage].self, forKey: .images)
link = try container.decode(String.self, forKey: .link)
date = try container.decode(Date.self, forKey: . date)
}
}And call the decode function of MBDecoder to create and populate an array of news like this:
You can find a complete example in the Example project.
Last updated
Was this helpful?