Ссылка на пустую базу данных SQLite - PullRequest
1 голос
/ 02 января 2012

Надеюсь, что кто-то может помочь новому разработчику iOS - у меня есть готовая база данных sqlite с именем teamresults.db, которую я добавил в проект с помощью «Добавить файлы ...», но когда я использую приведенный ниже код, мне кажется, что подключаться / ссылаться на пустую базу данных вместо той, которая добавлена ​​(при проверке через терминал база данных, используемая симулятором, имеет размер 0 МБ, а добавленная мной - около 3 МБ).

Кажется, что приложение создает пустую базу данных, но я не могу понять, почему? Есть мысли?

Для справки я не получаю никаких сообщений об ошибках:

BOOL success;
dbName = @"teamresults.db";

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
dbPath = [documentsDir   stringByAppendingPathComponent:dbName];

NSFileManager *fileManager = [NSFileManager defaultManager];

success = [fileManager fileExistsAtPath:dbPath];

if(success) {
    return;
}

NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:dbName];

[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil];

Ответы [ 2 ]

3 голосов
/ 02 января 2012

Кажется, что-то не так с этой строкой кода:

[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil];

Правильный будет:

[fileManager copyItemAtPath:databasePathFromApp toPath:dbPath error:nil];

Вы должны скопировать базу данных в путь к песочнице вместо пути к ресурсам !!

0 голосов
/ 02 января 2012

Сделай одну вещь.Удалите добавленную базу данных, щелкнув по ней правой кнопкой мыши и нажав «Удалить» вместо «Удалить только ссылку».Затем добавьте его снова и не забудьте нажать кнопку «Копировать в пункт назначения».Надеюсь, это поможет вам.

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