有幾個,我相信你應該解決的問題,之前我們實際上談解決你的問題。
錯誤1:命名約定
關係船舶核心數據應該以這樣的方式,當它們被放置在他們加入兩個實體的名稱之間的命名,他們提出了一個意思完整的句子。它使得開發人員(將來要維護的人)的生活變得簡單。
因此,不應將list和listitems之間的關係命名爲listName,這沒什麼意義,您應該考慮將其重命名爲「Contains」。
List - > Contains - > ListItems。說得通 ???

錯誤2:
創建關係,只有一個辦法,從列表中的項目,而不是建立從項目列表中的反比關係有時可能會導致將來不必要的代碼,
例如:假設您在特定列表中顯示項目的細節,並且出於某種原因,您想知道它屬於哪個列表,如果您沒有反向關係,則必須查詢核心數據以查找哪個列表項屬於哪個列表項取它後來:)
而是創建一個反比關係會讓你立即訪問列表對象。

繼早期提到的約定,項目 - >屬於關聯 - >列表:)
建議:
細心觀察的關係包含是一對多,其中作爲屬於關聯是一個一。這意味着一個列表可以包含很多項目,但項目只能屬於一個表:)
修改它根據自己的需要:)
讓我們回答這個問題:)
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.managedObjectContext.performAndWait {
let item1 = NSEntityDescription.insertNewObject(forEntityName: "Item", into: appDelegate.managedObjectContext) as! Item
item1.name = "abcd"
item1.quantity = 2
let item2 = NSEntityDescription.insertNewObject(forEntityName: "Item", into: appDelegate.managedObjectContext) as! Item
item2.name = "efgh"
item2.quantity = 5
let list = NSEntityDescription.insertNewObject(forEntityName: "List", into: appDelegate.managedObjectContext) as! List
list.name = "Test1"
list.contains = NSSet(array: [item1,item2])
//as an alternative you can save the list to item as well :)
//both will have same effect
item1.belongsTo = list
item2.belongsTo = list
try! appDelegate.managedObjectContext.save()
}
由於你可以在上面的代碼中看到,
我創建了item1和item2,因爲我沒有任何我創建的列表項以及列表。如果你已經有名單從核心數據獲取和使用它:)以上
list.contains = NSSet(array: [item1,item2])
聲明建立項目1,ITEM2和列表:)
注意之間的關係::含有一組,所以如果你簡單地將它設置爲新值,你將失去所有現有的關係,因此你應該追加新的項目到現有的list.contains設置:)
在我的情況清單是新鮮的,因此簡單地將其設置爲新值:)
item1.belongsTo = list
item2.belongsTo = list
其中在如上語句做相同的工作,在這裏你不必擔心更新名單的包括財產,它會自動爲您的核心數據:)
更新,希望它能幫助:)
你有沒有爲此生成類? – PiyushRathi
是的,我有,我創建了coredata實體並生成它們 – pavlos
很酷,你知道coreData中的基本操作:1)創建實體。 2)保存 – PiyushRathi