FMDB ios没有这样的表

我有一个SQLite项目的问题,我正在做,我正在使用FMDB,我遵循一个简单的例子,但没有工作。 而我找不到错误。 我从terminal做了我的数据库模式,我把它的一些数据。 我对ios开发很陌生,所以我不知道我是否做了好几步。 这就是我所做的:

1 – 我做了我的数据库模式,并添加一些字段。 2 – 我将database.db复制到xcode中的项目文件夹中。 3 – 我添加FMDB文件。 4 – 我添加sqlite3.dylib 5 – 我把这个代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.dbname = @"database.db"; NSArray * docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * docDIr = [docPath objectAtIndex:0]; self.dbpath = [docDIr stringByAppendingPathComponent:dbname]; [self checkDB]; [self getQ]; return YES; } -(void) getQ { FMDatabase * db = [FMDatabase databaseWithPath:dbpath]; [db open]; FMResultSet * result = [db executeQuery:@"SELECT * FROM table1"]; NSLog(@"last Error: %@",[db lastErrorMessage]); NSLog(@"result: %@", result); } -(void) checkDB { BOOL success; NSFileManager * fm = [NSFileManager defaultManager]; success = [fm fileExistsAtPath:dbpath]; NSError * error = [[NSError alloc] init]; if (success) return; NSLog(@"result:"); NSString * dbPathFromApp = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:self.dbname]; [fm copyItemAtPath:dbPathFromApp toPath:dbpath error:&error]; } 

显然数据库是空的,那么发生了什么事? 为什么我找不到table1? 如果我用任何sqlite gui打开文件,表格显示就好了。 感谢您的帮助控制台显示我的下一行:2013-03-02 14:03:31.839 myApp [21433:c07]最后错误:没有这样的表:table1 2013-03-02 14:03:31.841 myApp [21433: c07]结果:(null)

一些想法:

  1. 我确认数据库已经添加到你的包中。 转到您的目标设置,select“Build Phases”,展开“Copy Bundle Resources”,并确保您的数据库在那里列出。 如果没有,请点击“+”button并添加它。

    束

  2. 我会重置你的模拟器。 如果您运行该应用程序并没有正确复制数据库,它会在您的文档文件夹中为您创build一个空白数据库。 通过重置您的模拟器,您可以摆脱任何可能存在的空白数据库。

  3. 如果它仍然无法正常工作,我会在模拟器中检查包数据库。 导航到模拟器文件夹(〜/库/应用程序支持/ iPhone模拟器),find应用程序,打开包(通过控制点击应用程序本身,并说“显示包内容”),并检查在那里的数据库确定它有你的table1