在FMDB中重用核心数据创建的.db文件

时间:2016-08-22 06:30:41

标签: ios objective-c database core-data fmdb

我使用Core Data在我的iOS应用中管理本地数据库。但后来我要求将大量记录插入本地数据库。所以我选择FMDB来执行批量插入。但是当我尝试插入记录时,我得到了这个数据库错误:1"没有这样的表:表名。 但是当我交叉检查时,本地数据库中存在我在xcdatamodel中创建的所有表。

- (FMDatabase *)dbInMainThread{

    if (_dbInMainThread) {
         return _dbInMainThread;
    }

    NSURL *storeURL = [[[CoreDataManager manager] applicationLibraryDirectory] URLByAppendingPathComponent:[DATABASE_NAME stringByAppendingString:@".sqlite"]];
    [self checkDB:[storeURL relativePath]];

    _dbInMainThread = [FMDatabase databaseWithPath:[storeURL relativePath]];
    return _dbInMainThread;
}

-(void) checkDB:(NSString *)dbpath{

    BOOL success;
    NSFileManager * fm = [NSFileManager defaultManager];
    success = [fm fileExistsAtPath:dbpath];

    if (success) return;


    }

上述代码段中的成功bool始终返回true

我按照此SO答案中的步骤操作。 由于我使用的是Core Data,因此我不需要将DB文件添加到项目中。我卸载了应用程序,重置了模拟器,并在开始插入之前验证了DB文件位于正确的文件夹中。但没有任何帮助。

我在这里缺少什么

由于

0 个答案:

没有答案