У меня есть объекты coredata (подклассы NSManagedObject), я хочу преобразовать их в объекты Model, чтобы я мог повторно использовать существующий код. Как я могу вручную отобразить их?
объекты модели имеют структуру, как показано ниже: я получил объект сущности coredata. но теперь, когда я пытаюсь сопоставить их с видео структурой ниже. let video: Video = Video (from: <# Decoder #>) что я должен передать в декодер?
struct Video: Decodable{
var id : Int?
var name : String?
var video_description : String?
var thumbnail_image_url : String?
var provider_name : String?
private enum VideoKeys: String, CodingKey {
case id
case name
case video_description = "description"
case thumbnail_image_url = "poster"
case provider_details = "custom_fields"
}
private enum ProviderKeys : String, CodingKey{
case provider_name = "provider"
}
init(from decoder : Decoder) throws {
if let videoContainer = try? decoder.container(keyedBy: VideoKeys.self){
self.id = try videoContainer.decodeIfPresent(Int.self, forKey: .id)
self.name = try videoContainer.decodeIfPresent(String.self, forKey: .name)
self.video_description = try videoContainer.decodeIfPresent(String.self, forKey: .video_description)
self.thumbnail_image_url = try videoContainer.decodeIfPresent(String.self, forKey: .thumbnail_image_url)
if let providercontainer = try? videoContainer.nestedContainer(keyedBy: ProviderKeys.self, forKey: .provider_details){
self.provider_name = try providercontainer.decodeIfPresent(String.self, forKey: .provider_name)
}
}
}
}