我的模型中有两个实体(A,B)。他们有一种相反的关系:A-B。
下面是我如何在核心数据中添加新记录:
NSManagedObject *moA = NSEntityDescription insertNewObjectForEntityForName:@"A" inManagedObjectContext:managedObjectContext];
NSManagedObject *moB = NSEntityDescription insertNewObjectForEntityForName:@"B" inManagedObjectContext:managedObjectContext];
[moA setValue:@"http://www.apple.com" forKey:@"url"];
[moB setValue:@"Apple inc." forKey:@"title"];// set reverse relationship
[moA setValue:moB forKey:'relationToB'];
[moB setValue:moA forKey:'relationToA'];
运行此代码后,会得到错误:
未识别的选择器发送到实例
发布于 2011-02-26 17:13:17
这一行:
[moA setValue:moB forKey:'relationToB'];..。应:
[moA setValue:moB forKey:@"relationToB"];在原始文本中,您试图传递一个C字符串文本作为键,而不是NSString对象。在键值编码中,密钥的名称被转换为方法名(选择器),例如@"relationToB"被转换为setRelationToB:的选择器。
但是,C字符串文本不是一个对象,而是一个内存范围的地址,该内存范围转换为产生错误的乱七八糟的选择器名称。
https://stackoverflow.com/questions/5128270
复制相似问题