如何验证 SQLite 文件是否是有效的核心数据存储,无论是一般情况还是特定应用程序?
我想在加载之前验证我的核心数据存储(SQLite 文件),这样如果有任何损坏,应用程序不会简单地崩溃和烧毁。 使用 iPhone SDK,有没有一种方法可以验证 SQLite 文件 (1) 一般情况下它没有损坏,以及 (2) 更具体地说,SQLite 文件是否与该文件的可能数据存储版本之一匹配第二部分很重要,因为我构建了一个备份系统,允许用户将备份的 SQLite 文件加载到应用程序中以替换当前的数据存储。
I would like to verify my Core Data store (SQLite file) before loading it so that if there is any corruption, the app won't simply crash and burn. Using the iPhone SDK, is there a way to verify an SQLite file (1) generally that it is not corrupted, and (2) more specifically, whether or not the SQLite file matches one of the possible data store versions for the app? The second part is important because I have built a backup system which allows users to load backed-up SQLite files into the app to replace the current data store.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
TC 的答案可能是最简单的。但您也可以查看它的元数据,这会让您知道 A) 它具有核心数据元数据,B) 其实体的哈希值是什么,然后您可以使用它来确认您拥有与这些哈希值匹配的模型。
您可以通过
+[NSPercientStoremetadataForPersistentStoreWithURL:error:
方法访问元数据,而无需加载存储。TC's answer is probably the simplest. But you can also look at its metadata which will let you both know that A) it has Core Data metadata and B) what the hash values for its entities are which you can then use to confirm that you have a model which matches those hash values.
You can access the metadata without loading the store via the
+[NSPersistentStore metadataForPersistentStoreWithURL:error:
method.加载它并捕获异常?
Load it and catch the exception?