swift - 使实体关系可编码时出错
问题描述
我试图让一个简单的 NSManagedObject 类符合 Encodable 以便我可以轻松地将其编码为 JSON。
我有一个名为 TestObject 的实体,它与名为 Device 的实体具有一对多的关系。
一切正常,直到我尝试编码一个 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)
这个编译器告诉我什么,我如何编码我的对象及其关系?
解决方案
推荐阅读
- dns - 显示我的确切站点的其他域?
- xamarin - 当我使用 XAML 时,它会继承颜色等属性吗?
- amazon-web-services - 至少一个安全组必须打开所有入口端口。AWS Glue 连接到 RDS
- c# - 如何在 C# 中的方法中返回多个值....有可能吗?
- java - 在 Kafka 中,是否可以对来自一个主题的选择性分区进行复制?
- xml - XPath 版本(1.0、2.0、3.1)之间有什么区别
- hyperledger-fabric - fabric-samples:无法生成 orderer 创世块
- javascript - 在每次页面加载时在 Angular 6 中重新加载 JavaScript 文件
- java - 构建 Apache 时对 XML_GetErrorCode(和其他)的未定义引用
- sql - 查看 cte 或 temp 表?