Можно ли использовать символическую точку останова (или аналогичную) с динамическим установщиком свойств?
В какой-то момент в приложении свойство в моем объекте получает странное значение. Обычно я бы отлаживал что-то вроде этого, устанавливая символическую точку останова, подобную этой:
Таким образом, когда кто-то пытается установить для свойства значение, которое я ищу, я получаю удар и могу посмотреть на трассировку, чтобы увидеть, откуда она исходит.
К сожалению, это не работает, когда вы имеете дело со свойствами, объявленными как @dynamic. Есть ли другой способ сделать что-то подобное?
Больше информации
Рассматриваемый объект является NSManagedObject
В этом проекте используется RestKit, и вполне возможно, что именно отсюда исходит значение.
1 ответ
Вы можете реализовать сеттер самостоятельно и установить точку останова. Реализация основного установщика свойства данных немного отличается от обычной. Примерно так должно работать:
- (void)setFoo:(NSObject *)foo {
[self willChangeValueForKey:@"foo"];
[self setPrimitiveValue:foo forKey:@"foo"];
[self didChangeValueForKey:@"foo"];
}