2017-02-15 53 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

是的,它是真正的稱之爲 - 關係是一組,而不是陣列。這是核心數據的「限制」。你應該把它看作是你正在考慮問題錯誤的標誌。

與您的應用程序的上下文中多次表示與另一個對象具有關係的對象是什麼意思?把這個狀態表達爲一個獨立的實體,或者以不同的方式建模你的數據是否有意義?如果沒有關於您試圖建模的系統的特定信息,很難提供指導。

例如:如果您的模型有客戶< < - >>產品的關係表示客戶訂購產品。但是,您意識到客戶可以多次訂購產品,您可以將您的型號更改爲客戶< - >>訂購< < - >能夠更準確地反映您嘗試建模的情況的產品。