2012-01-02 3 views
1

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

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

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

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

ответ

3

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

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

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

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

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

+0

Абсолютно точно, спасибо за помощь. :) – Dizzler

+0

ваш приветствуется !! –

0

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

Смежные вопросы