1

JSONに簡単にエンコードできるように、単純なNSManagedObjectクラスをEncodableに準拠させようとしています。

Device という名前のエンティティと 1 対多の関係を持つ 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)

このコンパイラは何を教えてくれますか? オブジェクトとその関係をエンコードするにはどうすればよいですか?

4

0 に答える 0