我认为我openDB方法是创建该误差---"终止应用程序由于未捕获的异常' NSInternalInconsistencyException',原因是:'数据库failesad打开'&#34 ;
任何想法如何解决这个问题?我正在运行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)
以上内容来自我关注的youtube教程。其中一位用户发布了此代码,使其正常工作!但我不确定为什么会如此 ......
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths lastObject]; NSString* databasePath = [documentsDirectory stringByAppendingPathComponent:@"bp.sqlite"]; return databasePath;
任何人都可以解释这个吗?
答案 1 :(得分:0)
检查代码中的这一行
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
并将其与此比较
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
原因是您在NSSerachPathForDirectory
方法
NSSearchPathForDirectoriesInDomains