iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 实体商店不是键值“category.name”的键值编码兼容大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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”的键值编码兼容所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。