-1

我有一个在 Flash Builder for iOS 平台中空中制作的应用程序

我已经编译了一个版本并将其安装在我的 iPhone 上,该应用程序与数据库通信,但它不会在数据库中写入/更新。可能是什么问题?设备的权限还是数据库的路径?

现在谢谢。

代码:

private var dbFile : File;
private var dbPath : String = "SAG.sqlite"; //name of database

 private function setaAPP():void{       
    if(app == 'ANDROID'){           
        dbFile = new File('/mnt/sdcard/SAG/' + dbPath); // to ANDROID       
    }else if(app == 'DESKTOP'){
        //app == DESKTOP
        dbFile = File.applicationDirectory.resolvePath(dbPath); // to DESKTOP               
    }else if(app == 'DEBUG'){
        //only to debug in Android          
        dbFile = File.applicationDirectory.resolvePath(dbPath); // to DEBUG in device
    }else if(app == 'IOS'){
        //app == IOS        
        dbFile = File.applicationStorageDirectory.resolvePath(dbPath); // to iOS
    }           
}
4

2 回答 2

0

对于 iOS,我猜你想要这个:

dbFile = new File(dbPath);

尽管您可能也可以使用它:

dbFile = File.applicationDirectory.resolvePath(dbPath);

来自苹果文档

在 iOS 应用程序中,非本地化资源与应用程序的可执行文件和 Info.plist 文件一起位于包目录的顶层。

存储或“文档”文件夹将是空的,直到您在运行时将文件写入那里(也通过 iCloud 同步)。

于 2013-08-14T16:28:36.597 回答
-1

如果结构与您的 ANDROID 或 DEBUG 项目相同(即打包时将 db 包含在根应用程序目录中),您应该能够像在这些情况下一样使用 File.applicationDirectory.resolvePath(dbPath)。

编辑:

app 目录是不可写的,所以如果你想写入数据库,你需要将文件移动到 Documents 目录,你可以使用 var docs:File = new File(File.userDirectory.nativePath + '/文件');

于 2013-08-14T14:10:00.263 回答