如何从iphone应用程序下载更新以替换旧的sqlite数据库

时间:2010-04-17 12:23:44

标签: iphone database sqlite database-connection

我在我的iphone应用程序上使用sqlite数据库和

我需要从我的服务器上更新此数据库

我如何下载新数据库并删除旧数据库

并将新数据库重新复制到文档目录

2 个答案:

答案 0 :(得分:5)

  1. 使用+ [NSData dataWithContentsOfURL:]。
  2. 下载文件
  3. 关闭sqlite DB,如果已打开。
  4. 删除旧的DB文件(可能只是重命名 - 如果下载的数据出现问题,您可以恢复为数据库错误的上游版本) - [NSFileManeger removeItemAtPath:error:]
  5. 使用 - [NSData writeToFile:atomically:]将下载的数据写入DB文件。

答案 1 :(得分:0)

这是完整的代码

//替换我从app发送电子邮件的数据库。

- (void)handleOpenURL:(NSURL *)url {

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *txtPath = [documentsDirectory stringByAppendingPathComponent:@"/DemoApp.sqlite"];


NSURL *newUrl = [[NSURL alloc] initWithString:
              [txtPath stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];


if ([fileManager fileExistsAtPath:txtPath] == NO) {
    [fileManager copyItemAtURL:url toURL:newUrl error:&error];
}
else if ([fileManager fileExistsAtPath:txtPath] == YES) {

    [fileManager removeItemAtPath:txtPath error:&error];
     [fileManager copyItemAtURL:url toURL:newUrl error:&error];
}

}

希望这有帮助