Xcode Core-Data to-many关系:addObject方法错误

时间:2013-06-18 18:02:08

标签: xcode core-data

我有以下核心数据结构: core data http://i42.tinypic.com/2pqvx3c.png

我正在尝试将Vocabulary对象添加到Group类。

我尝试使用[Group addObject:VocabularyObject]方法执行此操作 无济于事。

 AppDelegate *delegate = [[AppDelegate alloc]init];

 Group *group = [_arr objectAtIndex:indexPath.row]; //I have an array with 'Group' objects

    //create vocabulary item
    Vocabulary *vocabularyEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Vocabulary" inManagedObjectContext:[delegate managedObjectContext]];
    vocabularyEntity.prompt = @"Here is a cool prompt";
    vocabularyEntity.definition = @"Here is an even cooler definition";

    [delegate saveContext];

    [group addTermsObject:vocabularyEntity];

我收到此错误,我使用异常断点,错误来自addTermsObject调用。

[__NSDictionaryI addTermsObject:]: unrecognized selector sent to instance 0x74c4f70

我想添加的对象肯定是一个词汇表对象,所以我不确定问题是什么。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

错误消息指出您的

Group *group = [_arr objectAtIndex:indexPath.row];

不是您想要的托管对象,而是NSDictionary。也许您使用

获取了数组
[fetchRequest setResultType:NSDictionaryResultType];

在获取请求中?在这种情况下,所有获取的对象都只是没有的字典 与托管对象上下文的任何连接,您不能使用这些词典 建立任何关系。

更新:此处出现另一个错误:

AppDelegate *delegate = [[AppDelegate alloc]init];

这将分配 new 应用程序委托,而不是使用现有的委托。这是 可能不是你想要的,你应该用

替换它
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];