如何在获取请求上调试Core Data崩溃

时间:2009-12-21 21:48:25

标签: iphone objective-c debugging memory-management core-data

我第二次执行

[[MOC executeFetchRequest:request error:&error] lastObject];

之后

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Login" inManagedObjectContext:MOC]];
NSError *error = nil;

它与EXC_BAD_ACCESS崩溃。包含的是调试窗口,看起来崩溃发生在Core Data堆栈的深处。关于如何调试这个以了解发生了什么的任何想法?

alt text

(以防万一,这里是图片的链接http://tinypic.com/r/zmavph/6点击链接中的图片,调试窗口会变大;

干杯

的Nik

2 个答案:

答案 0 :(得分:3)

EXC_BAD_ACCESS是内存错误。解除分配后,您正在使用对象。没有(更多)代码就很难调试它。

您是否尝试过运行分析仪(Xcode> Build> Build and Analyze)?

您可能还想要中断获取和数组查找:

NSArray *fetchedObjects = [MOC executeFetchRequest:request error:&error]
if (!fetchedObjects) {
    NSLog(@"Error fetching Login: %@", [error localizedDescription]);
    abort();
}

NSManagedObject *loginObject = [fetchedObjects lastObject];

答案 1 :(得分:1)

Apple对CoreData调试有一个非常有用的page