1

在调试时,如果我有一个 NSManagedObjectContext,有没有办法查看里面有什么对象。

基本上我有一个保存错误,因为保存了一个不符合 NSCoding 的 CGColor。但我不知道这个 CGColor 是从哪里来的。

4

2 回答 2

2

我同意 JR(下文)的观点,即您应该设置一个异常断点以在故障点获取堆栈跟踪。

另一个想法:虽然自动保存很方便,但它并不总是在调试的最佳时间发生。当您想要验证您的对象时,您可能会发现进行强制显式保存的调试操作很有帮助:

[self.document closeWithCompletionHandler:^(BOOL success) {
     if (!success) NSLog(@“failed to close document %@”, self.document.localizedName);
  }];  

有了这个或类似的东西,您可以在不同的点开始保存,以查看您的对象何时损坏。请记住,保存是异步的。

于 2013-03-08T00:22:40.873 回答
2

好吧,退后一步,想想你的错误是从哪里来的。

您正在尝试CGColorRef通过该NSCoding机制对 a 进行编码。这显然是不支持的,会导致抛出异常。您应该在调试器中添加一个异常断点,以检查执行此错误分配的位置。然后,您应该能够弄清楚您的问题。

如果您发现这与您的问题无关,那么您确实可以通过该-registeredObjects方法内省在您的上下文中放置的对象。

于 2013-03-08T00:05:18.820 回答