我可以在内部使用核心数据完成我的iphone应用程序。 但是,当我第一次在模拟器或设备上运行时,它崩溃并出现以下错误:
2010-03-18 10:55:41.785 CrData [1605:4603]未解决的错误错误Domain = NSCocoaErrorDomain Code = 513 UserInfo = 0x50448d0“操作无法完成。(Cocoa error 513。)”,{ NSUnderlyingException =验证商店的url时出错; }
当我在模拟器或设备上再次运行应用程序时,它运行得很好。我无法确定确切的问题。有人可以指导我如何进一步行动吗?
答案 0 :(得分:3)
您需要展开错误并查看发生了什么。在该错误内部(您可以在objc_exception_thrown上设置断点来捕获它)是userInfo字典,您可以查询该字典以查看底层错误是什么。
您的NSPersistentStoreCoordinator
创建代码是什么样的?
您是否添加了一个断点并执行了po [error userInfo]
,以便查看userInfo中是否还有其他错误?
核心数据可以并确实向您发送错误层次结构,并且经常会在最大错误中显示少量信息。通过调试器展开错误最好确定根本原因。
代码错误513表示在核心数据应用中创建商店的写权限失败。但是下一次相同的代码运行良好。那么,实际问题可能是我不知道的......如何在这里继续。
同样,您的持久性商店创建代码是什么样的?您需要发布一些代码,以便我可以查看它。否则我只是猜测哪个不好玩。
答案 1 :(得分:0)
8.2对持久性商店的位置(和权限)变得更加严格。我刚看到数据库存储在捆绑包中并与只读选项一起使用时出现“513”错误。使用8.1的设备它没有失败,但在8.2上出现错误和异常导致崩溃。在模拟器上没有发生异常,并且愉快地继续工作。
在启动时将数据库复制到应用程序文档目录的解决方案。
NSFileManager copyItemAtURL:toURL:错误有用。