Сбой контейнера группы приложений ios sqlite после первого использования

Я создал приложение, которое использует базу данных SQLite. Существующий код МОЖЕТ создать и использовать базу данных в каталоге библиотеки.

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

Поэтому я использую это, чтобы открыть и создать базу данных:

    NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier: @"group.com.company.sharedData"];
    NSURL *url = [NSURL URLWithString:DATA_FILENAME relativeToURL: groupURL];
    NSURL *absURL = [url absoluteURL];
    if (sqlite3_open([absURL fileSystemRepresentation], &_theDB) != SQLITE_OK) {
        NSLog(@"Failed to open database!");
    }
    else{
        NSLog(@"Opened shared database!");

    }

Который работает ОДИН РАЗ! Я могу создать открытую и использовать базу данных.

НО, в следующий раз, когда я открываю приложение, когда я могу открыть БД с помощью приведенного выше кода, все остальное выдает ошибку SQLite 26: (26) SQLITE_NOTADB При попытке открыть файл ошибка SQLITE_NOTADB указывает, что открываемый файл не похоже на файл базы данных SQLite.

ПРИМЕЧАНИЕ: статическая NSString *DATA_FILENAME = @"htdata.sqlite3"; Я тестировал как на симуляторе, так и на iPhone 5S. Я использовал и 8.0 и 8.1 как цели.

0 ответов

Другие вопросы по тегам