2017-02-15 50 views
0

我在我的核心数据模型中有多对多的关系,我需要在我的链接容器中添加一些重复链接,我知道链接容器的类型是NSSet @NSManaged public var linkContainer: NSSet?我可以将此类型更改为我的链接数组吗?当我改变类型为@NSManaged public var linkContainer: Array<Link>?我有这个错误 Unacceptable type of value for to-many relationship: property = "linkContainer"... 这是真的在这个容器中添加重复的链接?或者我可以在NSSet中添加一些使用过的链接数量? 我也试过NSCountedSet,但没有什么工作swift“多对多关系中的重复链接”是真的吗?

@NSManaged public var linkContainer: NSCountedSet?

public func addTo(link: link) { 
    self.linkContainer?.add(link) 
} 

然后linkContainer.count(for: link)

回答

1

是的,它是真正的称之为 - 关系是一组,而不是阵列。这是核心数据的“限制”。你应该把它看作是你正在考虑问题错误的标志。

与您的应用程序的上下文中多次表示与另一个对象具有关系的对象是什么意思?把这个状态表达为一个独立的实体,或者以不同的方式建模你的数据是否有意义?如果没有关于您试图建模的系统的特定信息,很难提供指导。

例如:如果您的模型有客户< < - >>产品的关系表示客户订购产品。但是,您意识到客户可以多次订购产品,您可以将您的型号更改为客户< - >>订购< < - >能够更准确地反映您尝试建模的情况的产品。