解决FMDB无法操作拖到工程里的数据库的问题

将早己经写好的数据库拖到工程中,通过NSBundle取xx.db的路径,该数据库是不能被FMDB操作的,文件放到document文件才能变成可读写,按一下步骤就可以文成操作数据库的目的

1.Appdelegate中需要添加如下代码

- (void)createEditableCopyOfDatabaseIfNeeded {

    // First, test for existence.

    BOOL success;

    NSFileManager *fileManager = [NSFileManager defaultManager];

    NSError *error;

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"xx.db"];

    success = [fileManager fileExistsAtPath:writableDBPath];

    if (success) return;

    // The writable database does not exist, so copy the default to the appropriate location.

    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"xx.db"];

    success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];

    if (!success) {

        NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);

    }

}


2.然后就可以通过如下代码操作数据库了

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *path = [paths objectAtIndex:0];

    path = [path stringByAppendingPathComponent:@"xx.db"];


如有问题欢迎交流。

个人参考的是http://stackoverflow.com/questions/7050105/fmdb-not-inserting-into-db/7050489#7050489

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值