Я определил два свойства с соответствующими иварами и синтезировал их:
@property (nonatomic,copy) NSString* title;
@property (nonatomic,copy) NSString* person;
Теперь в моей реализации у меня есть следующий пользовательский геттер для title
:
- (NSString*)title {
return (person) ? person : [title capitalizedString];
}
Таким образом, свойство title
зависит как от самого свойства title
, так и от свойства person
. Я хотел бы сделать этот класс KVO-совместимым, поэтому я добавил:
+ (NSSet*)keyPathsForValuesAffectingTitle {
return [NSSet setWithObjects:@"person", nil];
}
Теперь мой вопрос: нужно ли также добавить @"title"
к набору, чтобы убедиться, что изменения свойства title
тоже наблюдаются? Если да, разве это не создает бесконечный цикл?
Или KVO автоматически зависит от самого свойства?