swift "Duplicate links in many to many relationship" 是真的吗?

swift "Duplicate links in many to many relationship" it is real?

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

@NSManaged public var linkContainer: NSCountedSet?

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

然后通过linkContainer.count(for: link)

调用

是的,这是真实的 - 关系是集合,而不是数组。它是 core-data 的 'limitation'。你应该把它当作你对问题的思考错误的标志。

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

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