我正在遵循有关如何在我的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

07-24 09:21