Ios 实体商店不符合密钥的键值编码;类别名称“;
我正在用CoreData开发一个iOS应用程序 我有两个实体: 购物 类别 我正试图从Ios 实体商店不符合密钥的键值编码;类别名称“;,ios,core-data,Ios,Core Data,我正在用CoreData开发一个iOS应用程序 我有两个实体: 购物 类别 我正试图从商店实体访问类别.名称,但出现错误: - (void)updateDetails:(NSManagedObject *)shop { NSLog(@"updateDetails: %@", shop); if (shop == nil) return; self.nameLabel.text = [[shop valueForKey:
商店
实体访问类别.名称
,但出现错误:
- (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];
但我得到了这个错误:
”[valueForUndefinedKey:]:实体商店不符合密钥“category.name”的键值编码。
如何解决此错误?
self.categoryLabel.text=[[shop valueForKey:@“category.name”]description]代码>
应该是
self.categoryLabel.text=[[shop valueForKeyPath:@“category.name”]description]代码>
原因:来自
键是标识对象特定属性的字符串。通常,键对应于接收对象中访问器方法或实例变量的名称。键必须使用ASCII编码,以小写字母开头,并且不能包含空格
一些示例键是收款人
,期初余额
,交易
和金额
关键点路径是一组点分隔的关键点,用于指定要遍历的对象特性序列。序列中第一个键的属性是相对于接收器的,每个后续键都是相对于前一个属性的值进行评估的
例如,键路径address.street
将从接收对象获取address属性的值,然后确定相对于address对象的street属性。仅需添加-这来自