1

假设我有核心数据实体 A 和 B,其中 B 通过属性 a 指向 A。

给定 B 的 NSEntityDescription 和 A 的给定属性的关键路径(例如 @"a.name"),有没有办法恢复 A 的 NSEntityDescription?

谢谢,

蒂姆

4

1 回答 1

1

我通过自己解析关键路径设法做到了这一点:

    // 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;
    } 

如果有更直接的方法,我很想知道。

于 2012-06-13T08:39:56.357 回答