我在Core Data中的实体之间存在关联问题。我正在解析一些JSON并添加实体:
if ([hourSets isKindOfClass:[NSArray class]]) { // check to see that we have got some hours back
for (NSDictionary *hourSet in hourSets) {
Hourset *thisHourSet = (Hourset *)[NSEntityDescription
insertNewObjectForEntityForName:@"Hourset"
inManagedObjectContext:managedObjectContext];
[thisHourSet setStartDate:[hourSet objectForKey:@"start_date"]];
[thisHourSet setEndDate:[hourSet objectForKey:@"end_date"]];
[record addHoursetsObject:thisHourSet];
}
}
...然后再试图抓住它们:
NSSet *hourSets = [self.listing valueForKeyPath:@"hoursets.hourset"];
NSLog(@"There are %@ hourSets", [hourSets count]);
我收到程序收到的信号:“EXC_BAD_ACCESS”。当试图以任何方式访问该小时集NSSet时,包括仅计算其中的项目。
有什么建议吗?很难过。谢谢!
答案 0 :(得分:1)
我在这里推断你的实体图,但是:
[self.listing valueForKeyPath:@"hoursets.hourset"]
...转换为listing.hoursets.hourset
的密钥路径,它似乎不会返回集合。第一个和最后一个元素都是单数,因此按惯例不是设置。
我建议记录返回的类,以确认你回来了什么,如果有的话。
(额头拍)问题实际上是日志语句本身。它应该是:
NSLog(@"There are %d hourSets", [hourSets count]);
...因为count
会返回NSUInteger。