我是一名初学者 iPhone 开发人员,试图从 Xcode 4.3 中的 sqlite 数据库中获取信息。我的数据库(名为 DB_Info.sqlite)与 .h 和 .m 文件位于同一目录中,并且我还将数据库拖到 Xcode 左侧栏中的文件夹部分。
您能否快速查看我的代码并让我知道我的错误在哪里?我在最后一个 if 语句中使用 NSLogs 来确定问题发生的位置,并且它写在注释中。非常感谢您!
#import <sqlite3.h>
@implementation Player
{
sqlite3 *DB_Info;
NSString *databasePath;
NSString *docsDir;
NSArray *dirPaths;
}
-(Player*)createPlayer:(NSString*)playerName
{
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"DB_Info.sqlite"]];
const char *dbpath = [databasePath UTF8String];
sqlite3_stmt *statement;
if (sqlite3_open(dbpath, &DB_Info) == SQLITE_OK) { //works fine
NSString *querySQL = [NSString stringWithFormat: @"SELECT * FROM playerlist WHERE fullName=\"%@\"", playerName];
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(DB_Info, query_stmt, -1, &statement, NULL) == SQLITE_OK) { //PROBLEM: This is where the problem is, and the if statement never goes through
//....rest of code here
} else {
NSLog(@"Error");
}
}