大佬教程收集整理的这篇文章主要介绍了ios – 备份.sqlite(核心数据),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
现在我的备份和恢复功能正常.问题出在.sqlite文件本身.看来.sqlite文件不完整.
我在我的应用程序中输入了大约125个条目并进行了备份.备份出现在我的DropBox中但是当我使用.sqlite资源管理器工具查看内容时,我只看到第117个记录的记录.
我尝试更新第一个条目,然后再次观察.sqlite文件,但没有再次更改.
更奇怪的是该应用程序似乎记录了所有更改.当我添加新条目或更新现有条目并重新启动应用程序时,新添加的数据似乎仍然存在.
但是这个新添加的数据不会出现在我的.sqlite文件中.
我正在使用此代码备份:
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; NSString *filePath = [[[appDelegate applicationDocumentsDirectory] path] StringByAppendingPathComponent:@"MyApp.sqlite"]; if (account) { if ([filesystem isShutDown]) { filesystem = [[DBFilesystem alloc] initWithAccount:account]; [DBFilesystem setSharedFilesystem:filesystem]; } DBPath *newPath = [[DBPath root] childPath:[NSString StringWithFormat:@"BACkup - %@.sqlite",[NSDate date]]]; DBFile *file = [[DBFilesystem sharedFilesystem] createFile:newPath error:nil]; [file writeContentsOfFile:filePath shouldSteal:NO error:nil]; [filesystem shutDown]; }
我还从Simulator的文件夹中复制了.sqlite文件,并尝试在.sqlite浏览器中查看它.它仍然表现出相同的行为.有必要发生这种情况的原因吗?
这应该可以解释为什么单独的.sqlite文件不完整.
作为解决方案,您可以(也在技术说明中解释):
>通过设置,为sqlite存储禁用WAL模式(并使用“旧”回滚日记模式)
@{NSsqlitePragmasOption:@{@"journal_mode":@"deletE"}};
添加持久性存储时的选项,或
>使用
- (NSPersistentStore *)migratePersistentStore:(NSPersistentStore *)store toURL:(NSURL *)URL options:(NSDictionary *)options withType:(NSString *)storeType error:(NSError **)error
制作Core Data存储的备份副本的方法.
以上是大佬教程为你收集整理的ios – 备份.sqlite(核心数据)全部内容,希望文章能够帮你解决ios – 备份.sqlite(核心数据)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。