我有一个用flex制作的应用程序。我的问题是当我在 iphone 上运行查询以更新时,控制台返回:
Attempt to write a readonly database.
我有一个用flex制作的应用程序。我的问题是当我在 iphone 上运行查询以更新时,控制台返回:
Attempt to write a readonly database.
嘿,你看过这个 adobe 帖子吗: http ://forums.adobe.com/message/3793410
基本上声称:
在 iOS 上,您的应用程序目录是“只读的”(至少在使用本机应用程序时) - 因此应用程序目录中的资源(在 Air SDK 的术语中 - 不是 iOS SDK)不能被修改/写入/更新
您可以将已创建的 sqlite 数据库文件与您的应用程序一起发布,但应将其复制到应用程序可写目录中 - 例如复制到文档中。该目录可以通过以下方式访问:
File.documents目录
因此,当您的应用程序启动时,您可以执行以下操作:
1)构造文件目录数据库路径的路径
2)检查该路径中的数据库是否存在(如果文件存在)
3)如果文件尚不存在,要么将其从应用程序资源目录(在构建项目时捆绑它的位置)复制到该路径中,要么使用所有这些 CREATE 表创建新的空数据库,然后创建新的数据库副本所需的 INSERT 语句
4) 每次下次启动时,如果检查#2 是否存在文件,则跳过数据库创建/复制并开始使用它。