2017-02-03 60 views
1

我對Core Data非常熟悉,但是我還沒有發現Core Data關係的任何實際用途。我在概念上知道他們應該做什麼,但他們似乎沒有執行任何事情。標準的概念,如主鍵/外鍵,級聯刪除,刪除一個你不應該因爲關係約束而產生的值似乎沒有被強制執行。在現實世界中使用核心數據關係嗎?

我看完所有的錯誤嗎?核心數據關係實際上是否具有可執行的約束?

+0

這可能有助於:「對象驗證」中的「核心數據驗證如何工作」(https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/ObjectValidation.html#//核心數據編程指南「中的」apple_ref/doc/uid/TP40001075-CH20-SW1)「部分。 – pbasdf

回答

2

是的,您可以通過設置不同的刪除規則來控制關係。

諮詢本指南的詳細信息,可配置點:Creating Managed Object Relationships

值得一提的是,規則只在save()執行。

+1

謝謝。因此,核心數據關係的整個世界只在保存()期間起作用?我想我對這個話題的思考並不遙遠。 – 4thSpace

+0

還檢查這個答案,它有一些實際的例子:http://stackoverflow.com/questions/14837832/when-does-core-data-nullify-rule-update-relations – hybridcattt

4

你似乎在思考SQL風格術語中的核心數據,這是一個錯誤。它的API不是SQL-ish,即使它經常用作類似於數據庫的東西。

大多數直接 - 外鍵不是「標準概念」,除非您假定核心數據應遵循SQL規則。核心數據中的關係通常用代替外鍵。您使用關係來指示一個對象與某個其他對象相關。這與SQL可能使用外鍵將一個表中的條目與另一個表中的條目相關聯的方式類似,但這不是同一個事物。

他們在「現實世界」中使用嗎?當然,如果核心數據沒有關係,它的用處就會小得多。它們是具有屬性的對象的核心數據等價物,該屬性也是某種對象。