【问题标题】:Is it possible to use a symbolic breakpoint (or similar) with a dynamic property setter?是否可以将符号断点(或类似的断点)与动态属性设置器一起使用?
【发布时间】:2014-12-03 15:55:04
【问题描述】:

在应用程序的某个时刻,我的对象中的一个属性被设置为一个奇怪的值。通常,我会通过设置类似于以下的符号断点来调试类似的东西:

这样,当有人试图将属性设置为我正在寻找的值时,我会得到一个成功,我可以查看跟踪以了解它的来源。

不幸的是,当您处理声明为@dynamic 的属性时,这不起作用。还有其他方法可以做类似的事情吗?

更多信息

有问题的对象是NSManagedObject

这个项目使用了 RestKit,很可能这就是价值的来源。

【问题讨论】:

  • 我猜你尝试过自己实现 setter 并在其中设置断点?
  • @Lance - 我没有尝试过。我不知道为什么我认为您不能覆盖 NSManagedObject 上 @dynamic 属性的设置器。我刚试了一下,它奏效了。我想我应该看得更远!如果您想更彻底地解释它并将其添加为答案,我会继续接受。谢谢!

标签: objective-c debugging breakpoints conditional-breakpoint


【解决方案1】:

您可以自己实现设置器并在其中放置断点。实现核心数据属性设置器与正常情况有些不同。像这样的东西应该可以工作:

- (void)setFoo:(NSObject *)foo {
    [self willChangeValueForKey:@"foo"];
    [self setPrimitiveValue:foo forKey:@"foo"];
    [self didChangeValueForKey:@"foo"];
}

【讨论】:

  • 一旦实现,符号断点也会命中。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 2021-08-15
  • 2017-02-12
相关资源
最近更新 更多