2011-05-03 66 views
1

我使用我的提取请求这个简单的代码NSFetchRequest原因SIGABRT或EXC_BAD_ACCESS

NSArray *fetchResults = [moc executeFetchRequest:request error:&error]; 

NSLog(@" i want show my result : %@",fetchResults); - >原因SIGABRT

如果我只是在此创建后使用我的持久性存储,我有错误。

PS:商店在填充和请求之间保存。

但是,如果我关闭了应用程序,并重新打开(在这种情况下,商店存在),我没有错误。

在某些情况下,我可以看到这样一条消息:扔的“NSException”

一个实例后终止叫,但我不能访问此异常。

如果我计算获取结果,我有一个很好的数字,这真的很奇怪。

感谢您的帮助。

+0

好的,我发现了这个问题! 在我的填充代码中,我的一个relationShip插入了autorelease。 压制这个,现在没关系。 我已经在核心数据中忘记了这一点(不要使用release,而是将对象设置为nil)! – Pixman 2011-05-03 00:41:47

+0

然后添加这个答案。 – 2011-05-03 01:38:20

+0

好的,但我必须等,因为我是“新用户” – Pixman 2011-05-03 07:06:46

回答

1

好的,我发现了问题!

在填充代码中,我的一个关系是用autorelease插入的。

删除它,现在没关系。

这不是一个很好的解决方案:

NSManagedObject *relationEntity = [[NSEntityDescription insertNewObjectForEntityForName:@"picture" inManagedObjectContext:moc] autorelease]; 

只需删除自动释放:

NSManagedObject *relationEntity = [NSEntityDescription insertNewObjectForEntityForName:@"picture" inManagedObjectContext:moc]; 

我已经在核心数据忘记了这个(不要使用版本,只需设置对象nil )!