Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在我的IOS应用程序中,如何打开并创建可以在整个程序中使用的sqlite3数据库?_Ios_Sqlite - Fatal编程技术网

在我的IOS应用程序中,如何打开并创建可以在整个程序中使用的sqlite3数据库?

在我的IOS应用程序中,如何打开并创建可以在整个程序中使用的sqlite3数据库?,ios,sqlite,Ios,Sqlite,我正在尝试这样做: sqlite3 *db; self.dbPath = "tasks.sqlite"; int result = sqlite3_open(self.dbPath, &db); 这之后的代码正在抛出错误。所以我怀疑它不起作用。我应该通过什么作为路径 NSString *strDatabaseName; NSString *strDatabasePath; -(void)getDatabase { strDatabaseName = @"questionsdb.sq

我正在尝试这样做:

sqlite3 *db;
self.dbPath = "tasks.sqlite";
int result = sqlite3_open(self.dbPath, &db);
这之后的代码正在抛出错误。所以我怀疑它不起作用。我应该通过什么作为路径

NSString *strDatabaseName;
NSString *strDatabasePath;

-(void)getDatabase 
{
strDatabaseName = @"questionsdb.sqlite";    
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
strDatabasePath = [documentsDir stringByAppendingPathComponent:strDatabaseName];
}

-(BOOL) checkAndCreateDatabase {
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:strDatabasePath];
if(success) {
    return TRUE;
}
else {
    NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:strDatabaseName];
    [fileManager copyItemAtPath:databasePathFromApp toPath:strDatabasePath error:nil];
}
return FALSE;
}
然后从任何方法

sqlite3 *database;
if(sqlite3_open([strDatabasePath UTF8String], &database) == SQLITE_OK) 
{
//doSomething
}
我希望它对你也有用。 多谢各位

然后从任何方法

sqlite3 *database;
if(sqlite3_open([strDatabasePath UTF8String], &database) == SQLITE_OK) 
{
//doSomething
}
我希望它对你也有用。
谢谢。

这就是您创建db路径的方式吗?我的理解是,您需要写入Documents目录,该目录由
NSSearchPathForDirectoriesInDomains返回的数组中的第一个条目给出(NSDocumentDirectory,NSUserDomainMask,YES)另外,您是否包括sqlite库?您看到的错误消息是什么?它们将比“它不工作”更有帮助。这就是您创建db路径的方式吗?我的理解是,您需要写入Documents目录,该目录由
NSSearchPathForDirectoriesInDomains返回的数组中的第一个条目给出(NSDocumentDirectory,NSUserDomainMask,YES)另外,您是否包括sqlite库?您看到的错误消息是什么?他们将比“它不起作用”更有帮助。