Как в моем приложении IOS открыть открыть базу данных sqlite3, которую я могу использовать в своей программе? - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь сделать это:

sqlite3 *db;
self.dbPath = "tasks.sqlite";
int result = sqlite3_open(self.dbPath, &db);

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

1 Ответ

1 голос
/ 16 ноября 2011
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
}

Надеюсь, это сработает и у вас.спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...