Обновление базы данных SQLite в приложении для iPhone - PullRequest
0 голосов
/ 14 июля 2011

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

Есть приложение для iPhone, которое использует базу данных sqlite. Нужно обновить приложение и все прошло хорошо. Когда я устанавливаю приложение на iPhone, оно работает нормально, но когда я обновляю уже установленное приложение на каком-то устройстве, оно смешивало меня со старой базой данных и не функционировало, пока я не удалю и снова не установлю приложение.

Мой код для проверки данных на устройстве:

   /*
 This method checks is rawdata has been copied to Documents directory. 
 If not, copies and returns YES, to start conversion.
 Else, if already copied, reply NO.
*/
- (void) checkImportIsNeededFrom: (NSString*) bundledRawFilePath toDestination:(NSString*) documentSavedRawFilePath 
{
    NSLog(@"Checking rawdata file into Documents folder..");
    if ([[NSFileManager defaultManager] fileExistsAtPath:documentSavedRawFilePath]) {
        importIsNeeded = NO; // SET YES TO FORCE IMPORT ON EACH STARTUP
        NSLog(@"copy already existing in %@", documentSavedRawFilePath);
    } else {
        [[NSFileManager defaultManager] copyItemAtPath:bundledRawFilePath toPath:documentSavedRawFilePath error:NULL];
        importIsNeeded = YES;
        NSLog(@"copy %@ to %@ done...", bundledRawFilePath, documentSavedRawFilePath);
    }
}

- (BOOL) importIsNeeded {
    return importIsNeeded;
}

Так что мне просто нужна помощь с удалением старого на устройстве и заменой его новым. Есть ли простое решение.

Спасибо.

1 Ответ

0 голосов
/ 14 июля 2011

Ваш код только проверяет, что на устройстве уже есть база данных, но не проверяет, является ли она новой или старой.

При обновлении приложения предыдущая база данныхвсе еще будет там, поэтому importIsNeeded будет установлено на NO.Я предполагаю, что приложение затем пытается использовать базу данных, как если бы она была новой, и происходит сбой?

Вам необходимо проверить , какая база данных присутствует в этом месте, а не только если она существуетна все.

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