您好,我计划从我的项目资源文件夹添加静态 SQLite3,但我不知道我是否正确执行。
到目前为止,这是我的进展...
创建 SQLite3 数据库SQLite 数据库浏览器
Copied Sqlite3 Database to my project folder
Added network.db to my project resource folder
现在我不知道下一步该去哪里..我希望有人可以帮助我解决我的问题。
如果您在运行时修改数据库(即插入、删除或更新记录),则需要创建从包到文档目录的副本。 iOS sendboxing 机制不允许您在运行时修改捆绑资源。因此,您需要将其复制到文档目录中。下面的代码可以帮助你:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *filePath = [documentsDir stringByAppendingPathComponent:@"network.db"];
BOOL success = [fileManager fileExistsAtPath:filePath];
if(!success)
{
NSString *defaultDBPath = [[[NSBundle mainBundle] pathForResource:@"network" ofType:@"db"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:filePath error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable resource file with message '%@'.", [error localizedDescription]);
}
如果您仅将数据库用于查找目的(仅将其用于选择查询),则无需从捆绑包复制到文档目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)