コアデータエンティティ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;
}
もっと直接的な方法があれば、私はそれを知りたいです。