0

我已经在 Flex 中创建移动应用程序一年多了,并且做了很多复杂的事情,但是最近我想做的一些简单的事情是不适用于我正在创建的新移动应用程序。

我只是希望能够在设备上创建一个 sqlite db,这样我就可以读取和写入数据,创建数据库我使用了下面的代码:

sqlConnection = new SQLConnection();
                sqlConnection.open(File.documentsDirectory.resolvePath("New.db"));
                var stmt:SQLStatement = new SQLStatement();
                stmt.sqlConnection = sqlConnection;
                stmt.text = "CREATE TABLE IF NOT EXISTS cars (id INTEGER PRIMARY KEY AUTOINCREMENT, Name VARCHAR(90))";
                stmt.execute();

然后,当我在 Flashbuilder 中调试应用程序时,对于 android 和 IOS 来说,一切看起来都很好。但是,当我出于某种原因在设备上运行应用程序时,未创建数据库:-S

这对我来说很奇怪,因为我确信我使用了正确的代码,因为我在另一个应用程序中使用了下面的代码,这与您看到的完全相同,当我在 IOS 上运行该应用程序时,它可以很好地创建数据库: -S:-S

sqlConnection = new SQLConnection();
                sqlConnection.open(File.documentsDirectory.resolvePath("Bikes.db"));
                var stmt:SQLStatement = new SQLStatement();
                stmt.sqlConnection = sqlConnection;
                stmt.text = "CREATE TABLE IF NOT EXISTS makes (id INTEGER PRIMARY KEY AUTOINCREMENT, name INTEGER)";
                stmt.execute();
                stmt.text = "CREATE TABLE IF NOT EXISTS models (id INTEGER PRIMARY KEY AUTOINCREMENT, name INTEGER)";
                stmt.execute();

我不明白为什么我创建的旧应用程序可以工作而新应用程序不能工作??有谁知道是否有任何其他元素需要到位才能让我将此数据库文件写入 IOS?只是要注意我已将所有权限添加到清单中,感谢您的帮助:-)

4

1 回答 1

1

我很确定documentsDirectory 在iOS 上是写保护的。

对于特定于应用程序的文件,请File.applicationStorageDirectory改用。您对该目录具有开箱即用的读取和写入访问权限,无需更改权限。

于 2012-09-25T05:47:46.267 回答