createEditableCopyOfDatabaseIfNeeded создать пустую копию БД! - PullRequest
1 голос
/ 17 сентября 2010

Я использую "знаменитую" функцию :) createEditableCopyOfDatabaseIfNeeded для создания редактируемой копии моей базы данных в приложении для iphone. Функция копирует исходную базу данных в каталог документов, только если еще нет дб .. довольно просто .. но теперь у меня проблемы, потому что я не знаю почему, но с SDK 3.2.3 в iOS 4.1 функция копирует мою БД .... ПУСТО !!!

Вот код:

- (void)createEditableCopyOfDatabaseIfNeeded  
{ 
    // First, test for existence. 
    BOOL success; 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSError *error; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"funghi.sql"]; 
    success = [fileManager fileExistsAtPath:writableDBPath]; 
    if (success) return; 
    // The writable database does not exist, so copy the default to the appropriate location. 
    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"funghi.sql"]; 
    success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error]; 
    if (!success) { 
        NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]); 
    }
}

БД полна и правильна! Я могу прочитать оригинальную базу данных с помощью плагина sqlite для Firefox! Любая помощь?

Огромное спасибо !!!

1 Ответ

2 голосов
/ 14 января 2012

Только для целей тестирования:

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

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