Основные данные IOS с помощью KVO-valueForKey: для пользовательского свойства подкласса NSManagedObject?
У меня есть два подкласса NSManagedObject, производные от сущностей ActivityMember и Member. Член имеет свойство с именем name, и ActivityMember, через один на один с членом, имеет свойство членов. Я пытаюсь создать пользовательское свойство ActivityMember с именем name, которое просто предоставляет имя своего члена, например:
ActivityMember.М:
-(NSString *)memberName
{
if (!self.member) {
return nil;
}
return self.member.name;
}
ActivityMember.h:
@property (readonly) NSString *memberName;
Когда мой подкласс TableViewController отправляет valueForKey: в экземпляр ActivityMember, он завершается со следующим сообщением:
[<NSManagedObject 0x4d6c830> valueForUndefinedKey:]: the entity ActivityMember is not key value coding-compliant for the key "memberName".
Если я добавляю временный атрибут member к ActivityMember, это больше не приводит к сбою, но свойство memberName всегда равно nil, даже если self.member.name возвращает допустимую строку.
Думая, что переходные атрибуты могут нуждаться в некотором автоматическом обновлении, я также добавил следующее К ActivityMember, без успеха.
+ (NSSet *)keyPathsForValuesAffectingMemberName
{
return [NSSet setWithObjects:@"member.name", nil];
}
Возможно ли, что NSManagedObject делает свою собственную магию кво? Я установил точку останова внутри тела keyPathsForValuesAffectingMembername, но он никогда не ломался.
Это похоже на обычный случай использования, но я не нашел хорошего поста на эту тему.