#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’ в набор. Я полагаю, предполагается, что все свойства по умолчанию зависят от самих себя.