2013-11-27 51 views
0

我覺得我的openDB法「因未捕獲的異常‘NSInternalInconsistencyException’,原因終止應用程序:‘數據庫failesad打開’」創造這個錯誤---。NSInternalInconsistencyException未捕獲的異常而SQLite數據庫

任何想法如何解決這一問題?我正在運行xcode 4.6

-(NSString *) filePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); 
    return [[paths objectAtIndex:0] stringByAppendingPathComponent:@"bp.sql"]; 
} 

-(void) openDB { 
    if (sqlite3_open([[self filePath] UTF8String], &db) != SQLITE_OK) { 
     sqlite3_close(db); 
     NSAssert(0, @"Database failesad to open"); 
    } else { 
     NSLog(@"database opened"); 
    } 
} 
+0

你寫過代碼將數據庫從應用程序包複製到設備目錄? –

+0

我不確定你的意思。我是新手。 – Jeremy

+0

你的sqlite數據庫位於哪裏? –

回答

0

入住這條線,你的代碼

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); 

,並與這一個

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

原因比較它是您在使用錯誤的NSSerachPathForDirectoryNSSearchPathForDirectoriesInDomains方法

+0

哈!咄!歡呼尤金。 – Jeremy

0

以上是來自我正在關注的YouTube教程。其中一位用戶發佈了使其工作的代碼!但我不知道爲什麼它是如此 ...

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString* documentsDirectory = [paths lastObject]; NSString* databasePath = [documentsDirectory stringByAppendingPathComponent:@"bp.sqlite"]; return databasePath; 

誰能解釋一下嗎?

相關問題