插入扩展抽象实体的实体时出错

时间:2011-09-18 15:41:49

标签: ios core-data

我有以下实体:

  • User。具有用户名,邮件等的通用用户实体
  • ComputerUserWithAI。与用户类似,但它由应用程序控制。
  • Pick。包含与Game的关系,它应该有一个选择器。

由于Picker可以是UserComputerUserWithAI,我创建了一个名为Abstract Entity的{​​{1}},我创建了Picker和{{ 1}}扩展User类。 我添加ComputerWithAI实体后,我PickerPicker实体之间的关系称为选择器。

一切都很顺利,但我无法将Pick插入Picker。我的代码是这样的:

ComputerUserWithAI

我得到的错误如下:

  

由于未捕获的异常而终止应用   'NSInvalidArgumentException',原因:'不可接受的值类型   一对一的关系:property =“picker”;期望的类型=选择器;特定   type = NSManagedObject; value =(实体:   ComputerUserWithAI ...

但是当我这样做时:

Pick

它确实有用。

我从核心数据检查了生成的类,他们正在正确地扩展抽象实体。什么可能是错的?

1 个答案:

答案 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。