在应用程序的某个时刻,我的对象中的属性被设置为一个奇怪的值。通常,我会通过设置类似于此的符号断点来调试这样的东西:
这样,当有人试图将属性设置为我正在寻找的值时,我会受到一击,我可以查看跟踪以查看它的来源。
不幸的是,当您处理声明为@dynamic的属性时,这不起作用。有没有其他方法可以做类似的事情?
更多信息
有问题的对象是NSManagedObject
这个项目使用RestKit,它很可能就是价值来源。
答案 0 :(得分:3)
您可以自己实现setter并在其中放置断点。实现核心数据属性设置器与正常情况略有不同。这样的事情应该有效:
- (void)setFoo:(NSObject *)foo {
[self willChangeValueForKey:@"foo"];
[self setPrimitiveValue:foo forKey:@"foo"];
[self didChangeValueForKey:@"foo"];
}