-3

这是我的代码,错误也可见:

在此处输入图像描述

在 Mozzila Firefox 的 SQLite 管理器中 - 所有查询工作正常,这意味着数据库是正确的

也许有人可以指出我的代码有什么问题?

编辑:

我的代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"stories_db.sqlite"];

FMDatabase *db = [FMDatabase databaseWithPath:path];
//[db open];
if ([db open]==true)
{
    FMResultSet *resultsFavorite = [db executeQuery:@"SELECT count(*) from favorites"];
    while ([resultsFavorite next])
    {
        Pasaka *pasaka = [[Pasaka alloc]init];
        pasaka.title = [resultsFavorite stringForColumn:@"story_name"];
        pasaka.image = [resultsFavorite stringForColumn:@"image_path"];
        pasaka.movie = [resultsFavorite stringForColumn:@"video_path"];
        [favoriteMovieList addObject:pasaka];
    }

}

编辑2:

当我做这个查询时:

FMResultSet *results = [db executeQuery:@"SELECT count(*) FROM sqlite_master"];

它没有显示任何错误。

4

4 回答 4

0

重置iOS 模拟器,或者如果您正在测试设备删除应用程序,

清理项目并再次运行..

于 2013-10-23T08:51:35.770 回答
0

只需转到您在 dbpath 中获得的文档。好像你的桌子不在那里。只需从设备或模拟器中删除您的应用程序并在 dbpath 中手动复制数据库或使用 NSFileManager 复制它并再次运行您的代码。

于 2013-10-23T08:54:37.857 回答
0

您需要先将数据库复制到您的文档文件夹中(还要检查您的 sqlite 文件是否已正确添加到项目设置的 Build Phases 中的 Copy Bundle Resources 中):

//Where your original database file is
bundleDatabasePath = [[NSBundle mainBundle] pathForResource:@"stories_db" ofType:@"sqlite"];
//Where you will copy it in order to be used
documentDatabasePath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingString:@"/stories_db.sqlite"];

//Using the default file manager
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;

//Copy empty database into document folder
if (![fileManager copyItemAtPath:bundleDatabasePath toPath:databasePath error:&error]) {
    //Error
    NSLog(@"Could not copy the database into document folder. Error:%@", error);
}

//Use DB
FMDatabase *db = [FMDatabase databaseWithPath:databasePath];
于 2013-10-23T09:06:02.227 回答
0

找到了解决方案。将我的数据库文件移到项目的顶部...哦,它起作用了...

于 2013-10-23T09:56:05.230 回答