Сбой контейнера группы приложений 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 как цели.