Я пытаюсь заставить простой класс NSManagedObject соответствовать Encodable, чтобы я мог легко кодировать его в JSON.
У меня есть сущность с именем TestObject, которая имеет отношение один ко многим с сущностью с именемУстройство.
Все работает нормально, пока я не попытаюсь кодировать NSSet (для многих отношений).
import UIKit
import CoreData
import Foundation
@objc(TestObject)
public class TestObject:NSManagedObject,Encodable
{
@nonobjc public class func fetchRequest() -> NSFetchRequest<TestObject> {
return NSFetchRequest<TestObject>(entityName: "TestObject")
}
@NSManaged public var testName: String?
@NSManaged public var devices: NSSet? // of entity type "Device"
enum CodingKeys: String, CodingKey {
case testName
case devices
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy:CodingKeys.self)
try container.encode(testName,forKey:.testName)
try container.encode(devices,forKey:.devices)
}
}
Ошибка, которую я получаю от компилятора:
reference to member 'devices' cannot be resolved without a contextual type
try container.encode(devices,forKey:.devices)
Что говорит мне этот компилятор и как я могу кодировать свои объекты вместе с их связями?