【问题标题】:How to make Xcode Iphone Simulator save SQLite database to local file?如何让 Xcode Iphone Simulator 将 SQLite 数据库保存到本地文件?
【发布时间】:2012-09-28 22:03:35
【问题描述】:

我正在使用 CSS、HTML、Javascript 和 PhoneGap 构建我的第一个 iPhone 应用程序。我想使用 SQLite 作为数据库,所以我使用以下教程作为灵感:

http://coenraets.org/blog/2011/10/sample-app-using-the-phonegap-database-api/

以下代码确定天气是使用数据库中的数据,还是先用数据填充数据库:

function onDeviceReady() {

    db = window.openDatabase("EmployeeDirectoryDB", "1.0", "PhoneGap Demo", 200000);
    if (dbCreated)
        db.transaction(getEmployees, transaction_error);
    else
        db.transaction(populateDB, transaction_error, populateDB_success);
}

调试后发现每次运行app都会填充数据库,所以

if (dbCreated)

从不执行。

我想看看 SQLlite 文件,所以我使用 SQLite 数据库浏览器来定位它,但没有运气。来自以下问题:

How to view the data in sqlite file running in iphone application?

我可以看到该文件应该位于此文件夹中的某个位置:

user/Library/Application Support/iPhone Simulator/

iPhone Simulator 文件夹不存在。

如何让模拟器将数据库保存到本地文件?

【问题讨论】:

    标签: ios xcode cordova ios-simulator


    【解决方案1】:

    每次您在模拟器上运行应用程序时,它都会在 iphone 模拟器文件夹中创建一个文件夹。确保您的 Library 文件夹可见并且您使用的是正确的路径。

    要使库文件夹可见,您可以在终端上运行以下命令:

    chflags nohidden ~/库

    这是我的 iphone 模拟器文件夹用作参考的路径:

    /Users/alexandreoliveira/Library/Application Support/iPhone Simulator

    另外需要注意的是,通常 sqlite 数据库保存在文档文件夹中:

    用户/alexandreoliveira/图书馆/应用程序支持/iPhone Simulator/5.1/Applications/some-weird-numbers/Documents/

    【讨论】:

    • 运行 chflags nohidden ~/Library 后,我可以在终端中看到该文件夹​​,但在 SQLite 数据库浏览器中看不到它。是否可以让系统显示所有程序中的所有隐藏文件夹?
    • 我已经尝试查看所有带有长数字的文件夹(有两个) - 以及他们的 Documents 文件夹,但没有 .sqllitefiles。正如我之前提到的,应用程序似乎每次都填充数据库。也许是因为它从未被保存?
    • 既然你在谈论 phonegap,我认为 ios 5 上存在一个错误,即 db 文件保存在临时文件夹中并在系统需要时被删除,因此他们发布了一个新版本来修复该问题2012 年。您使用的是哪个版本的 phonegap?
    • 根据 VERSION 文件,我使用的是他们网站上最新的 2.1.0。另外,我正在使用 xcode 4.5 的 ios 6.0 模拟器
    • 还有其他选择吗?
    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2015-01-06
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 2011-06-29
    相关资源
    最近更新 更多