首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自SQLabs的SQLiteManager -为什么iOS应用程序无法识别我的数据库

来自SQLabs的SQLiteManager -为什么iOS应用程序无法识别我的数据库
EN

Stack Overflow用户
提问于 2013-03-13 09:03:20
回答 1查看 232关注 0票数 0

我从SQLabs在SQLiteManager中创建了一个SQLite DB,然后将DB文件mydb.sqlite3添加到我构建的iOS SDK应用程序中。我相信我已经正确地将应用程序配置为使用SQLite,因为我可以(在代码中)创建一个数据库,创建一个表并对其进行查询。

当我将外部创建的DB拖到app文件夹中时,它会出现在app下面的Group中。它还出现在应用程序的"Copy Bundle Resources“构建阶段。

当我试图查询外部创建的DB时。我得到一个错误,没有找到表,我假设这是因为db文件不知何故没有包括在构建中,当我打开数据库时,它默认会创建一个。

为了确认这一想法,如果我从模拟器中卸载应用程序并在调试器中再次运行该应用程序,这一次包含(在我打开db之前)一些调试代码来NSLog()应用程序中的所有文件,数据库文件不会在日志中列出。

当我运行调试器时,为什么项目中包含的DB不会被复制到模拟器上的app documents文件夹中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 09:46:28

您可以使用以下代码执行以下操作:

1)检查数据库是否尚不存在2)将数据库从主包复制到documents文件夹

代码语言:javascript
复制
NSArray *paths = [NSArray arrayWithObject:[self MR_applicationDocumentsDirectory]];
NSFileManager *fm = [[NSFileManager alloc] init];

for (NSString *path in paths) 
{
    NSString *filepath = [path stringByAppendingPathComponent:storeFileName];
    if ([fm fileExistsAtPath:filepath])
    {

    } else {
        NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"YourDBNameHere" ofType:@"sqlite"];
        if (defaultStorePath) {
            [fm copyItemAtPath:defaultStorePath toPath:filepath error:NULL];
        }

     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15375207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档