我想备份我的核心数据库。我已经读过我需要做的就是保存sqlite文件。我仍然不确定这是否真的如此。无论哪种方式,我一直在尝试保存sqlite文件,但我不知道该怎么做。我想我可以使用下面的代码来实现它。只是不知道下一步该去哪里。
GroupAppDelegate *appDelegate= (GroupAppDelegate *)[[UIApplication sharedApplication] delegate];
NSURL *storeURL = [[appDelegate applicationDocumentsDirectory] URLByAppendingPathComponent:@"Group.sqlite"];
NSData *sqliteData = [[NSData alloc] initWithContentsOfURL:storeURL];
我进行了设置,以便连接到Dropbox,现在我需要在那里保存核心数据。
答案 0 :(得分:0)
如果你有sqlite文件的NSURL句柄,你不需要将它转换为NSData或任何东西。您可以通过多种方式从设备中检索文件: a)将其作为附件通过电子邮件发送。 (看看MFMailComposeViewController) b)使用DropBox API将文件传输到DropBox帐户。查看DropBox API c)使用iTunes传输文件。有一些方法可以做到这一点,但目前没有参考。
答案 1 :(得分:0)
请注意,从iOS 7开始,接受的答案是一个坏主意,因为sqlite文件有其他支持文件,并且不能单独运行!
使用以下NSPersistentStoreCoordinator类方法而不是文件系统API来备份和还原Core Data存储:
- (NSPersistentStore *)migratePersistentStore :( NSPersistentStore *)存储toURL:(NSURL *)URL选项:(NSDictionary *)选项withType:(NSString *)storeType错误:(NSError **)错误
请注意,这是我们推荐的选项。
通过Apple