2012-06-25 91 views

回答

1

是的。你可以擁有一個擁有「東西」的人......

3

抽象實體並不意味着被實例化。這就是爲什麼你 不能 創建這種關係。你可以做的是創建一個關係,其中的實體是從一個抽象實體繼承的。

Apple's docs

甲關係指定目的地處的 對象的實體,或父實體。這可以與 源(反射關係)中的實體相同。關係不一定是同質的 。如果員工實體有兩個子實體,如經理 和Flunky,那麼給定部門的員工可能由 員工組成(,假設員工不是抽象實體),經理, 流氓或其任何組合。

編輯: 顯然,你可以創建這樣的關係(使子實體會繼承的關係爲好)......

如果定義了實體繼承層次結構(見「實體 繼承「),當您將超實體指定爲獲取請求的實體時,該請求會返回超實體和子實體的所有匹配實例。在某些應用程序中,您可能會將超實體指定爲抽象(請參閱「抽象實體」)。若要獲取匹配抽象實體 的所有具體子實體的實例,您將用於提取規範的實體設置爲摘要 實體。在「抽象實體」中描述的域的情況下,如果 您使用圖形實體指定提取請求,則提取返回 匹配Circle,TextArea和Line的實例。

也看到這個答案:Core Data: Abstract Entity in Fetch Request

+0

那就是斷章取義。 「假設員工不是抽象實體」用括號編寫,因爲如果員工是抽象的,它就不能出現在員工關係中。事實上,本段證實這是可能的,因爲它說關係不一定是同質的。在很多情況下,我使用抽象實體作爲關係中的目標。 –

+0

我最初的理解與Alladinian的理解是一樣的,儘管我也和Paul de Lange一樣對開發者進行了交流。所以如果我們有一個Person(抽象)與Employee具有一對多關係。這意味着員工可以要求其人員需要創建人員。這將會起作用,因爲Objective-C不會像Java一樣強制將類抽象爲抽象類,但它是正確的事情嗎?那麼爲什麼麻煩將Person定義爲抽象? – ADude

+0

員工有很多人?多麼令人困惑的例子......無論如何,你需要考慮實體而不是類。它是一個抽象實體而不是抽象類。你的課只是實體的程序化表示。 Obj-C中沒有抽象類,不像Java中提到的那樣。它在文檔中解釋了爲什麼要使用此功能。 –