2012-04-28 29 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

相关问题