1

我创建了一个使用 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 作为目标。

4

0 回答 0