Короче говоря, при изменении значения свойства мне нужно обновить некоторую логику в моем коде, например:
- (void)setProp:(NSString *)theProp
{
if (prop != theProp){
[prop release];
prop = [theProp copy];
[self myLogic];
}
}
или
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if ([keyPath isEqualToString:@"prop"]){
[self myLogic];
}
}
Какой лучший способ и ПОЧЕМУ?
EDIT: я префект второй способ, потому что я не знаю, что компилятор будет генерировать директиву @synthesize
для меня, я решил полагать, что компилятор более умнее, чем моя реализация сеттера, поэтому я не буду нарушать что-то.