1

我想保存一个目标和一个演员。这两个实体与责任关系相关:

Goal *addgoal = (Goal*)[NSEntityDescription insertNewObjectForEntityForName:@"Goal" inManagedObjectContext:context];

    addgoal.goalNaam = nameTextField.text;
    addgoal.goalId = idField.text;
    addgoal.goalBeschrijving = beschrijvingField.text;

    Actor *addactor = (Actor*)[NSEntityDescription insertNewObjectForEntityForName:@"Actor" inManagedObjectContext:context];

    addactor.actorNaam = responsibleField.text;

    [addgoal addResponsibilityObject:addactor];

上面的行 ([addgoal addResponsibility:addactor]) 导致错误,出了什么问题?

在目标.h 中:

@interface Goal (CoreDataGeneratedAccessors)
- (void)addResponsibilityObject:(Actor *)value;
@end

错误:

2012-08-02 20:57:11.838 Choose3[7434:fb03]-[__NSCFSet entity]:无法识别的选择器发送到实例 0x8877810 2012-08-02 20:57:11.840 Choose3[7434:fb03] *由于未捕获而终止应用程序异常“NSInvalidArgumentException”,原因:“-[__NSCFSet 实体]:无法识别的选择器发送到实例 0x8877810”

4

2 回答 2

5

我刚刚遇到了同样的问题。这里的解决方案是,我忘记检查模型检查器中关系选项中的“To-Many”选项。

于 2012-10-18T09:36:12.220 回答
0

Core Data 似乎对责任关系的性质感到困惑。我建议创建NSManagedObject与数据模型的当前状态相匹配的子类。

创建此错误的一种方法是将一对多关系更改为一对一关系,而无需重新生成实体类文件。

于 2012-08-02T19:54:24.683 回答