KVO для зависимого свойства, зависящего от самого себя

#iphone #cocoa #dependency-properties #key-value-observing

#iPhone #cocoa #зависимость-свойства #наблюдение за ключом-значением

Вопрос:

Я определил два свойства с соответствующими ivars и синтезировал их:

 @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 автоматически зависит от самого свойства?

Ответ №1:

Согласно документам, вы не помещаете свойство ‘title’ в набор. Я полагаю, предполагается, что все свойства по умолчанию зависят от самих себя.