我正在遵循有关如何在我的App上使用SQlite3的iOS 6视频教程,但是我认为在iOS 7上创建数据库的过程已经更改,因为我无法使我的应用正常工作。
这是代码:
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
sqlite3 *db_name;
}
-(NSString *)filePath { // sqlite database path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
return [[paths objectAtIndex:0] stringByAppendingPathComponent:@"bp.sql"];
}
-(void)openDB { // Create or load db
if(sqlite3_open([[self filePath]UTF8String], &db_name)!= SQLITE_OK) {
sqlite3_close(db_name);
NSLog(@"DB failed to open");
} else {
NSLog(@"DB openend");
}
}
这两个函数都在标头中声明。而且我总是无法打开DB。我应该做些不同的事情吗?
最佳答案
在您的代码中,您将 NSDocumentationDirectory 作为 NSSearchPathForDirectoriesInDomains 函数的参数,应在其中将其替换为 NSDocumentDirectory 。
像这样
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
有关可用于获取不同文件路径的不同常量的更多信息,请查看Apple的Foundation Constants Reference。