我应该如何针对可能的核心数据文件损坏或加载问题进行防御性编码?
我在 iPhone 应用程序中使用 Core Data,这很好。
我担心如果将核心数据加载到我的应用程序(或保存它)时出现错误,我应该采取什么方法。特别是在可能的情况下(不确定发生这种情况的可能性有多大,但安全总比后悔好),您的应用程序根本无法运行,因为它无法加载数据,并且重新启动应用程序会将其带回到原来的状态。同样请。
问题 - 如果尝试处理这种情况,人们通常会做什么?换句话说,什么方法?到目前为止,唯一想到的是:
构建一个错误处理程序,提示用户是否要删除数据并重新开始......我想这假设 iPhone 会将问题作为错误正确地报告给程序
建议用户可能必须删除该应用程序并重新安装(更少的工作)
其他?不确定是否有任何可能的“清理”或“修复”代码/提示,或者是否应该考虑尝试这一点......
谢谢
PS。我还没有达到理解/处理核心数据迁移的程度,以升级核心数据模式已更改的应用程序。也许这只是上述问题仍然有效的另一种可能情况......或者不确定在代码(以及用户消息)中采取的方法是否取决于它是迁移错误还是单独的错误。
I'm using Core Data in my iPhone application which is fine.
I'm concerned about what approach I should be taking if there is ever an error loading the core data data into my application (or saving it for that matter). In particular a possible situation (not sure what the odds are of this occuring but better to be safe than sorry) where your application can't function at all because it can't load it's data, and restarting the application brings it back to the same please.
Question - what do people typically do if trying to handle this situation? What approach in other words? The only ones that jump to mind so far are:
Build in an error handler that prompts the user re whether they want to delete their data and start again so to speak...I guess this assumes the iPhone will report the problem to the program properly as an error
Suggest to the user they may have to delete the application and reinstall (less work)
Other? Not sure if there are any "clean up" or "repair" code/tips that are possible, or whether one should even think about trying this anyway....
thanks
PS. I haven't got to the point of understanding/dealing with core data migrations for upgrades of the applicaiton where the core data schema has changed. Perhaps this is just another possible situation to which the above questions are still valid...Or not sure whether the approach that one takes within the code (and with user messages) will depend on whether it's a migration error, or a separate error.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
安全总比后悔好,但不要在这上面浪费太多时间。核心数据损坏极为罕见。即使在保存过程中反复崩溃也很少会导致问题。
无论如何,处理损坏的存储的唯一方法就是将其删除。您可能需要设置某种标志来在应用程序关闭时删除该文件。检测到损坏的文件后,为用户提供删除存储并重新启动应用程序的选项。
Better safe than sorry is fine but don't burn a lot of time on this. Core Data corruption is extremely rare. Even repeatedly crashing during saves seldom causes problems.
In any case, the only way to deal with a corrupt store is to delete it. You will probably want to set some kind of flag to delete the file when the app shuts down. Upon detection of the corrupt file, give the user the option to delete the store and restart the app.