gpt4 book ai didi

ios fmdb 从文件加载数据库

转载 作者:行者123 更新时间:2023-11-29 11:17:16 28 4
gpt4 key购买 nike

我使用 sqlite 和 fmdb 包装器。我的加载数据库代码是这样的:

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

我将 biscuit.sqlite 添加到我的项目中,但此代码创建新文件而不是打开现有文件。如何加载此文件?

最佳答案

如果您只想从数据库中读取数据,请尝试使用以下代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"biscuit" ofType:@"sqlite"];

如果您需要读/写权限,您必须先将您的数据库复制到一个可写的用户文件夹。

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *dbPath = [documentsDir stringByAppendingPathComponent:@"biscuit.sqlite"];
BOOL success = [fileManager fileExistsAtPath:dbPath];
if (!success) {

NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"biscuit.sqlite"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error];

if (!success) {
NSLog(@"Failed to create writable DB. Error '%@'.", [error localizedDescription]);
} else {
NSLog(@"DB copied.");
}
}else {
NSLog(@"DB exists, no need to copy.");
}

关于ios fmdb 从文件加载数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900647/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com