Ошибка при кодировании отношений сущностей - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь заставить простой класс 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)

Что говорит мне этот компилятор и как я могу кодировать свои объекты вместе с их связями?

...