我正在尝试在应用程序首次加载时创建/打开sqlite数据库。但是我经常收到错误由于未捕获的异常导致应用程序'NSInternalInconsistencyException',原因:'错误:无法打开,因为库例程调用不按顺序' 下面是我在主viewcontroller文件中的代码:
- (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);
NSAssert1(0, @"Error: Failed to open because %s", sqlite3_errmsg(db));
}
else {
NSLog(@"Database opened");
}
}
- (void)viewDidLoad {
[self openDB];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
答案 0 :(得分:0)
此错误的原因是您在sqlite3_errmsg
之后致电sqlite3_close
;你得到一个在清理过程中发生的无害错误。
您必须在sqlite3_errmsg
之前致电sqlite3_close
以获取实际错误。