ios – 实体商店不是键值“category.name”的键值编码兼容

ios – 实体商店不是键值“category.name”的键值编码兼容,第1张

概述我正在使用CoreData开发一个iOS应用程序. 我有这两个实体: 店 类别 我正在尝试从Shop实体访问category.name但是我收到一个错误: - (void)updateDetails:(NSManagedObject *)shop{ NSLog(@"updateDetails: %@", shop); if (shop == nil) retur 我正在使用CoreData开发一个iOS应用程序.

我有这两个实体:

类别

我正在尝试从Shop实体访问category.name但是我收到一个错误:

- (voID)updateDetails:(NSManagedobject *)shop{    NSLog(@"updateDetails: %@",shop);    if (shop == nil)        return;    self.nameLabel.text =      [[shop valueForKey:@"name"] description];    self.categoryLabel.text =  [[shop valueForKey:@"category.name"] description];    self.addressLabel.text =   [[shop valueForKey:@"address"] description];    self.telephoneLabel.text = [[shop valueForKey:@"telephone"] description];    NSNumberFormatter* f = [[NSNumberFormatter alloc] init];    [f setNumberStyle:NSNumberFormatterDecimalStyle];    NSNumber* acceptRate = [f numberFromString:[[shop valueForKey:@"acceptRate"] description]];    _ratingControl.rating = [acceptRate unsignedIntValue];}

我通过这种方式检索Shop实体:

NSManagedobjectContext *context = [self managedobjectContext];NSEntityDescription *entity = [NSEntityDescription entityForname:@"Shop"                                          inManagedobjectContext:context];NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];[fetchRequest setEntity:entity];NSArray *results = [context executeFetchRequest:fetchRequest error:nil];

但我得到这个错误:

‘[< NSManagedobject 0x1cdb4890> valueForUndefinedKey:]:实体Shop不是键值“category.name”的键值编码兼容.

我该如何解决这个错误?

解决方法 self.categoryLabel.text = [[shop valueForKey:@“category.name”] description];

应该

self.categoryLabel.text = [[shop valueForKeyPath:@“category.name”] description];

原因:从Key Value Coding Documentation开始

键是一个标识对象特定属性的字符串.通常,键对应于接收对象中的访问器方法或实例变量的名称.密钥必须使用ASCII编码,以小写字母开头,并且可能不包含空格.

一些示例键是收款人,开户平衡,交易和金额.

键路径是一串点分隔键,用于指定要遍历的对象属性序列.序列中第一个键的属性是相对于接收者的,并且每个后续键相对于前一个属性的值进行评估.

例如,键路径address.street将从接收对象获取address属性的值,然后确定相对于地址对象的street属性.

总结

以上是内存溢出为你收集整理的ios – 实体商店不是键值“category.name”的键值编码兼容全部内容,希望文章能够帮你解决ios – 实体商店不是键值“category.name”的键值编码兼容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存