iPhone核心数据应用程序崩溃。

3
我能够使用核心数据来完成我的iPhone应用程序。但是第一次在模拟器或设备上运行时会出现以下错误导致崩溃: 2010-03-18 10:55:41.785 CrData[1605:4603] 未解决的错误 Error Domain=NSCocoaErrorDomain Code=513 UserInfo=0x50448d0 "操作无法完成(Cocoa错误513)",{      NSUnderlyingException =验证存储的url时出错; }
当我再次在模拟器或设备上运行该应用程序时,它会完美运行。我无法识别确切的问题。有人可以指导我如何进一步进行吗?
2个回答

3
你需要展开错误并查看发生了什么。在该错误内部(您可以设置断点在objc_exception_thrown上捕获它),有一个userInfo字典,您可以查询以查看底层错误是什么。
更新
你的NSPersistentStoreCoordinator创建代码是什么样子的?
你是否添加了断点并执行了po [error userInfo]来查看userInfo中是否有其他错误?
Core Data可以发送一系列错误,并且通常只有很少的信息暴露在顶部错误中。通过调试器展开错误以确定根本原因最好。
更新
代码错误513意味着,在核心数据应用程序中创建存储的写入权限失败。但是,同一段代码下次运行时运行良好。所以,实际问题是我不知道......如何在这里继续。
同样,你的持久存储创建代码是什么样子的?您需要发布一些代码,以便我可以查看它。否则,我只是在猜测,这没有任何乐趣。

代码错误513表示,在核心数据应用程序中创建存储的写入权限失败。但是,同一段代码下次运行时却能正常工作。因此,实际问题可能不为我所知......在这里该如何继续。 - Satyam
太好了。我也遇到了在“bundle”路径中插入到数据库的同样问题,所以有人告诉我将文件复制到“用户”库空间中。当我这样做时,我决定“移动”(即为了节省内存)--然而,移动需要删除权限--傻瓜!当我转储[error UserInfo]时,这变得更加明显。现在我的复制按预期工作了! - mobibob

0

8.2对持久存储的位置(和权限)变得更加严格。当数据库存储在捆绑包中并使用只读选项时,我刚刚看到了“513”错误的出现。在使用8.1的设备上,它可以正常工作而不会失败,但在8.2上,错误和异常出现导致崩溃。在模拟器上,异常没有发生,并且继续工作。

解决方案是在启动时将数据库复制到应用程序文档目录中。

NSFileManager copyItemAtURL:toURL:error将非常有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接