0

我有一个用flex制作的应用程序。我的问题是当我在 iphone 上运行查询以更新时,控制台返回:

Attempt to write a readonly database.
4

1 回答 1

1

嘿,你看过这个 adobe 帖子吗: http ://forums.adobe.com/message/3793410

基本上声称:

  • 在 iOS 上,您的应用程序目录是“只读的”(至少在使用本机应用程序时) - 因此应用程序目录中的资源(在 Air SDK 的术语中 - 不是 iOS SDK)不能被修改/写入/更新

  • 您可以将已创建的 sqlite 数据库文件与您的应用程序一起发布,但应将其复制到应用程序可写目录中 - 例如复制到文档中。该目录可以通过以下方式访问:

    File.documents目录

  • 因此,当您的应用程序启动时,您可以执行以下操作:

1)构造文件目录数据库路径的路径

2)检查该路径中的数据库是否存在(如果文件存在)

3)如果文件尚不存在,要么将其从应用程序资源目录(在构建项目时捆绑它的位置)复制到该路径中,要么使用所有这些 CREATE 表创建新的空数据库,然后创建新的数据库副本所需的 INSERT 语句

4) 每次下次启动时,如果检查#2 是否存在文件,则跳过数据库创建/复制并开始使用它。

于 2013-10-23T17:09:05.547 回答