2012-04-28 30 views
1

我在我的模型中有一個父實體「List」和一個名爲「UserList」的子實體(子實體),它只是一種列表類型。 「UserList」沒有自己的屬性或關係,它繼承了List的所有內容。 List與ListItem有多對多的關係。核心數據父實體生成NSManagedObject子類

我要求XCode 4.2生成NSManagedObject子類。 對於列表它產生我所期望的,包括

- (void)insertObject:(NSManagedObject *)value inListItemsAtIndex:(NSUInteger)idx; 
- (void)removeObjectFromListItemsAtIndex:(NSUInteger)idx; 
... 

但是生成的「UserList的」類未聲明,如果它被宣佈爲「列表」的子類,但將是確定的任何方法,那不是什麼它產生了。

@interface UserList : NSManagedObject 
@end 

是UserList的真正名單的一個子類?我可以只更改標題嗎?或者是更復雜的事情呢?

回答

3

有幾件事要檢查。首先,確保已經爲List和UserList實體提供了一個類名,然後確保UserList已將List聲明爲其父實體。

發電機是挑剔的。如果您尚未在模型GUI中專門分配類名稱,則會即時生成它們。不幸的是,這意味着,根據它們的生成順序,有些信息可能無法生成正確的信息(首先生成用戶列表成像...如果您沒有專門給列表一個類名稱,它只知道使用NSManagedObject)。

按照慣例,我總是在模型GUI中專門分配類名稱。我沒有看到這種情況發生時,我專門爲每個實體分配一個類(在你給實體名稱的地方),但我想可能會發生。

嘗試重新生成類文件。它可能只是這次正確生成。

編輯

澄清後評論...

注意:不幸的是,Xcode是爲在這個問題上非常一致。如果你沒有明確地給實體提供類名,那麼引用它的其他實體將會以「錯誤的」類名生成。

我建議您爲您的工作流程選擇以下選項之一。

  1. 總是在GUI中爲每個實體分配類名。

  2. 第一次生成時總是生成兩次類。

  3. 使用mogenerator https://github.com/rentzsch/mogenerator#readme代替Xcode類生成器。

+0

哇。有效。我沒有改變任何東西,只是按照你的建議重新生成UserList。唯一改變的是它現在將UserList聲明爲List的子類。我希望XCode不那麼不一致。謝謝。 – David 2012-04-29 04:51:59

相關問題