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,但没有任何效果

@NSManaged public var linkContainer: NSCountedSet?

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

然后打电话给linkContainer.count(for: link)

4

1 回答 1

1

是的,它是真实的——关系是集合,而不是数组。这是核心数据的“限制”。你应该把它看作是你对问题的思考是错误的。

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

例如:如果您有一个具有 Customer <<->> Product 的模型,其中该关系表示客户订购了产品。但是随后您意识到客户可以多次订购产品,您会将模型更改为 Customer <->> Order <<--> Product,这将更准确地反映您尝试建模的情况。

于 2017-02-15T07:14:28.183 回答