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 に答える