在调试时,如果我有一个 NSManagedObjectContext,有没有办法查看里面有什么对象。
基本上我有一个保存错误,因为保存了一个不符合 NSCoding 的 CGColor。但我不知道这个 CGColor 是从哪里来的。
在调试时,如果我有一个 NSManagedObjectContext,有没有办法查看里面有什么对象。
基本上我有一个保存错误,因为保存了一个不符合 NSCoding 的 CGColor。但我不知道这个 CGColor 是从哪里来的。
我同意 JR(下文)的观点,即您应该设置一个异常断点以在故障点获取堆栈跟踪。
另一个想法:虽然自动保存很方便,但它并不总是在调试的最佳时间发生。当您想要验证您的对象时,您可能会发现进行强制显式保存的调试操作很有帮助:
[self.document closeWithCompletionHandler:^(BOOL success) {
if (!success) NSLog(@“failed to close document %@”, self.document.localizedName);
}];
有了这个或类似的东西,您可以在不同的点开始保存,以查看您的对象何时损坏。请记住,保存是异步的。
好吧,退后一步,想想你的错误是从哪里来的。
您正在尝试CGColorRef
通过该NSCoding
机制对 a 进行编码。这显然是不支持的,会导致抛出异常。您应该在调试器中添加一个异常断点,以检查执行此错误分配的位置。然后,您应该能够弄清楚您的问题。
如果您发现这与您的问题无关,那么您确实可以通过该-registeredObjects
方法内省在您的上下文中放置的对象。