首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将核心数据中的关系值设置为一个无法识别的选择器发送给实例错误

将核心数据中的关系值设置为一个无法识别的选择器发送给实例错误
EN

Stack Overflow用户
提问于 2011-02-26 16:47:16
回答 1查看 793关注 0票数 0

我的模型中有两个实体(A,B)。他们有一种相反的关系:A-B。

下面是我如何在核心数据中添加新记录:

NSManagedObject *moA = NSEntityDescription insertNewObjectForEntityForName:@"A" inManagedObjectContext:managedObjectContext];

NSManagedObject *moB = NSEntityDescription insertNewObjectForEntityForName:@"B" inManagedObjectContext:managedObjectContext];

代码语言:javascript
复制
[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'];

运行此代码后,会得到错误:

未识别的选择器发送到实例

EN

回答 1

Stack Overflow用户

发布于 2011-02-26 17:13:17

这一行:

代码语言:javascript
复制
[moA setValue:moB forKey:'relationToB'];

..。应:

代码语言:javascript
复制
[moA setValue:moB forKey:@"relationToB"];

在原始文本中,您试图传递一个C字符串文本作为键,而不是NSString对象。在键值编码中,密钥的名称被转换为方法名(选择器),例如@"relationToB"被转换为setRelationToB:的选择器。

但是,C字符串文本不是一个对象,而是一个内存范围的地址,该内存范围转换为产生错误的乱七八糟的选择器名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5128270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档