我有两个现有的NSManagedObject
子类,需要在两者之间添加新的关系。
我尝试手动将关系添加到模型中(两侧:一个是“一个”,另一个是“多个”)。然后我在两个头文件中添加了相关的方法签名。一个对象称为GameEvents
,另一个对象是Player
。
在GameEvents.h文件中:
@property (nonatomic, retain) Player *player
- (void)addPlayerObject:(Player *)value;
- (void)removePlayerObject:(Player *)value;
并在Player.h文件中
@property (nonatomic, retain) NSSet *events;
- (void)addEventsObject:(GameEvents *)value;
- (void)removeEventsObject:(GameEvents *)value;
- (void)addEvents:(NSSet *)values;
- (void)removeEvents:(NSSet *)value;
我得到的错误是在GameObject.m源中调用[self addPlayerObject:p]
是一个'无法识别的选择器'。
我查看了建议Core Data - how to generate CoreDataGeneratedAccessors?检查关系是否已正确定义,但建议是使用NSManagedObject
重新生成,但我有一堆自定义代码,因此无法实现。
任何帮助将不胜感激!感谢...
答案 0 :(得分:0)
在我看来,针对这种情况的最佳方法(必须将自己的代码添加到自动生成的NSManagedObject子类)如下:
这样,您可以重新生成自动生成的标头,而不会覆盖您自己的代码。
在您的情况下,我建议您将所有自己的代码移动到类扩展中,然后重新创建自动生成的文件。
答案 1 :(得分:0)
我将所有未生成的代码移动到分类中,重新生成NSManagedObject
类,并成功编译并运行应用程序。我发现了对分类和扩展at this link
一个重要提示:我必须删除 NSManagedObject
类,然后重新生成。否则,课程没有被替换。