我有以下实体:
User
。具有用户名,邮件等的通用用户实体ComputerUserWithAI
。与用户类似,但它由应用程序控制。Pick
。包含与Game
的关系,它应该有一个选择器。由于Picker
可以是User
或ComputerUserWithAI
,我创建了一个名为Abstract Entity
的{{1}},我创建了Picker
和{{ 1}}扩展User
类。
我添加ComputerWithAI
实体后,我Picker
与Picker
实体之间的关系称为选择器。
一切都很顺利,但我无法将Pick
插入Picker
。我的代码是这样的:
ComputerUserWithAI
我得到的错误如下:
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:'不可接受的值类型 一对一的关系:property =“picker”;期望的类型=选择器;特定 type = NSManagedObject; value =(实体: ComputerUserWithAI ...
但是当我这样做时:
Pick
它确实有用。
我从核心数据检查了生成的类,他们正在正确地扩展抽象实体。什么可能是错的?
答案 0 :(得分:0)
发现错误。生成的Pick.h
具有以下内容:
@class Picker
@interface Pick : NSManagedObject
@property (nonatomic, retain) NSManagedObject *game;
@property (nonatomic, retain) Picker *picker;
将其更改为:
@interface Pick : NSManagedObject
@property (nonatomic, retain) NSManagedObject *game;
@property (nonatomic, retain) NSManagedObject *picker;
让一切顺利。
尝试验证Xcode生成的代码。这发生在我身上使用Xcode 4.2。