iOS AS3 AIR本地存储

时间:2012-12-10 00:14:22

标签: ios actionscript-3 air

我正在开发一个需要设备上的SQL DB的应用程序。我正在使用File.applicationStorageDirectory和folder.resolvePath添加新的数据库。调试应用程序时,它看起来都正常执行,我能够成功创建一个新表。

我在插入和读取记录时并没有走得太远,但我只是想问,当我重新运行应用程序时,现有的DB文件是否被新的空文件替换?如果需要,我需要检查文件是否存在等。

如何查看设备上的数据库(此阶段的iOS)?

由于

2 个答案:

答案 0 :(得分:0)

试试这个

如果您使用resolvePath,如果该文件不存在,则它为您创建,否则它将保持原样。如果您使用resolvepath,则永远不会发生。

OR

如果您想通过

检查是否已存在
        if(dbFile.exist) 
           trace('File already exists');

使用此

        var dbFile:File = new File("app-storage:/" + "localdb.db");
        sqlConnection = new SQLConnection();            
        sqlConnection.addEventListener(SQLEvent.OPEN, onAuthorDatabase_OpenHandler);
        sqlConnection.addEventListener(SQLErrorEvent.ERROR, onSQLErroHandler);
        sqlConnection.openAsync(dbFile);

我不知道如何在设备存储位置(iOS)上查看db文件。

答案 1 :(得分:0)

是的,它会被保存,您可以随时访问它。这适用于任何事情,而不仅仅是数据库(因此通用名称和对象类型)

var file:File = File.applicationStorageDirectory.resolvePath( "file.path" );
var obj:Object = { someRandom:"data" };
var fs:FileStream = new FileStream();
fs.open( file, FileMode.WRITE );
fs.writeObject( obj );
fs.close();

以上内容会将对象obj写入设备。请记住,这不会更新文件,它将覆盖文件。要更新文件,请执行以下操作:

var file:File = File.applicationStorageDirectory.resolvePath( "file.path" );
if ( file.exists ) {
    var fs:FileStream = new FileStream();
    fs.open( file, FileMode.READ);
    var obj:Object = fs.readObject();
    fs.close();
}

然后,您更新数据并按照我在第一个代码段中显示的那样继续编写