无法在iOS中打开/​​创buildSQLite数据库

我有2个文件DatabaseViewController.h文件

#import <UIKit/UIKit.h> #import "sqlite3.h" @interface DatabaseViewController : UIViewController @property (weak, nonatomic) IBOutlet UILabel *status; @property(strong,nonatomic) NSString *databasePath; @property(nonatomic) sqlite3 *contactDb; @end 

另一个DatabaseViewController.m:

 - (void)viewDidLoad { [super viewDidLoad]; NSString *docsDir; NSArray *dirPaths; // Get the documents directory dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); docsDir = dirPaths[0]; //Buid the path for database file _databasePath = [[NSString alloc] initWithString:[docsDir stringByAppendingPathComponent:@"contacts.db"]]; NSFileManager *filemgr = [NSFileManager defaultManager]; if([filemgr fileExistsAtPath: _databasePath ] == NO) { const char *db_path = [_databasePath UTF8String]; if(sqlite3_open(db_path, &_contactDb) == SQLITE_OK) { char *errMsg; const char *sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)"; if (sqlite3_exec(_contactDb, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK) { _status.text = @"Failed to create table"; } sqlite3_close(_contactDb); } else { _status.text = @"Failed to open/create database"; } } } 

不幸的是,声明

 if(sqlite3_open(db_path, &_contactDb) == SQLITE_OK) 

从来没有成功。

它只是路由到

  _status.text = @"Failed to open/create database"; 

问题是什么?

我没有将libsqlite3.dylib添加到项目中。 我正在使用Xcode 4.5。

NSDocumentationDirectory的引用应该是NSDocumentDirectory

编辑:没关系 – 忘记sqlite_open也将创build数据库文件,如果它不存在,问题只是错误的目录引用。