0

私はFlexでモバイルアプリケーションを1年以上作成しており、多くの複雑なことを行ってきましたが、最近私がやろうとしている簡単なことは、私が作成している新しいモバイルアプリでは機能しません.

デバイス上に 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 に答える