выпуск iphone sqlite - PullRequest
       16

выпуск iphone sqlite

1 голос
/ 31 августа 2011

Я попытался импортировать БД в папку «Вспомогательные файлы» и подключился к БД с помощью:

NSString *sqliteDb = [[NSBundle mainBundle] pathForResource:@”person” ofType:@”sqlite”];
if(sqlite3_open([sqliteDb UTF8String], & database)!=SQLITE_OK)

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

Ответы [ 3 ]

1 голос
/ 01 октября 2012

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

1 голос
/ 31 августа 2011

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

    NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *docDir = [docPaths objectAtIndex:0];
    NSString *dbPath = [[docDir stringByAppendingPathComponent:@"person.rsd"] retain];    
    NSFileManager *fm = [NSFileManager defaultManager];
    BOOL success = [fm fileExistsAtPath:dbPath];
    if(success) return;
    NSString *dbPathFromApp=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent :@"person.rsd"];
    [fm copyItemAtPath:dbPathFromApp toPath:dbPath error:nil];

После этого выполните ваш запрос, и вы получите вставленные данные в папку симулятора приложения.

0 голосов
/ 31 августа 2011

Сначала скопируйте вашу базу данных person.sqlite в каталог документов приложения, а затем откройте эту базу данных для операций.

...