Можно ли использовать символическую точку останова (или аналогичную) с динамическим установщиком свойств?

В какой-то момент в приложении свойство в моем объекте получает странное значение. Обычно я бы отлаживал что-то вроде этого, устанавливая символическую точку останова, подобную этой:

Таким образом, когда кто-то пытается установить для свойства значение, которое я ищу, я получаю удар и могу посмотреть на трассировку, чтобы увидеть, откуда она исходит.

К сожалению, это не работает, когда вы имеете дело со свойствами, объявленными как @dynamic. Есть ли другой способ сделать что-то подобное?

Больше информации

Рассматриваемый объект является NSManagedObject

В этом проекте используется RestKit, и вполне возможно, что именно отсюда исходит значение.

1 ответ

Решение

Вы можете реализовать сеттер самостоятельно и установить точку останова. Реализация основного установщика свойства данных немного отличается от обычной. Примерно так должно работать:

- (void)setFoo:(NSObject *)foo {
    [self willChangeValueForKey:@"foo"];
    [self setPrimitiveValue:foo forKey:@"foo"];
    [self didChangeValueForKey:@"foo"];
}
Другие вопросы по тегам