как загрузить обновление из приложения iphone для замены старой базы данных sqlite - PullRequest
2 голосов
/ 17 апреля 2010

Я использую базу данных sqlite в своем приложении для iPhone и

мне нужно обновить эту базу данных из интернета с моего сервера

как я могу загрузить новую базу данных и удалить старую базу данных

и скопируйте новую базу данных в каталог документов

Ответы [ 2 ]

5 голосов
/ 17 апреля 2010
  1. Загрузите файл с помощью + [NSData dataWithContentsOfURL:].
  2. Закрыть базу данных sqlite, если она открыта.
  3. Удалить старый файл БД (может быть просто переименовать - если что-то пошло не так с загруженными данными, вы можете вернуться к предыдущей версии файла БД) с помощью - [NSFileManeger removeItemAtPath: error:]
  4. Записать загруженные данные в файл БД с помощью - [NSData writeToFile: atomically:].
0 голосов
/ 29 сентября 2012

Вот полный код

// замена базы данных, которую я отправил по электронной почте из приложения.

- (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];
}

}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...