假设我有核心数据实体 A 和 B,其中 B 通过属性 a 指向 A。
给定 B 的 NSEntityDescription 和 A 的给定属性的关键路径(例如 @"a.name"),有没有办法恢复 A 的 NSEntityDescription?
谢谢,
蒂姆
假设我有核心数据实体 A 和 B,其中 B 通过属性 a 指向 A。
给定 B 的 NSEntityDescription 和 A 的给定属性的关键路径(例如 @"a.name"),有没有办法恢复 A 的 NSEntityDescription?
谢谢,
蒂姆
我通过自己解析关键路径设法做到了这一点:
// Split the path to the section name up
NSArray *keyNameParts = [sectionNameKeyPath componentsSeparatedByString:@"."];
// Follow this back to the Entity description for the Section Entity
for (int idx = 0; idx < keyNameParts.count - 1; idx++) {
NSDictionary *relationships = entityDescription.relationshipsByName;
NSString *partName = [keyNameParts objectAtIndex:idx];
NSRelationshipDescription *relationshipDescription = [relationships objectForKey:partName];
if (!relationshipDescription)
{
[NSException raise:@"Relationship not found for keypath"
format:@"Entity '%@' does not point to a relationshop for '%@' in keypath '@'.", entityName, partName, sectionNameKeyPath];
}
entityDescription = relationshipDescription.entity;
}
如果有更直接的方法,我很想知道。