尝试删除我从远程服务器下载到applicationDataDirectory
中的图像。在模拟器中进行测试,我不断收到以下错误。
[错误]应用程序因未捕获的异常'NSInvalidArgumentException'而崩溃。 [错误]原因:-[TiFilesystemFileProxy isFileURL]:无法识别的选择器已发送到实例0x7f8dc0f34560
[错误]堆栈跟踪:
[错误] 0 CoreFoundation 0x000000010f9101ce __exceptionPreprocess + 270
基本上,我有一个视图数组,其中每个视图都有一个imageId。当我注释掉f.deletefile()
时。所有调试字符串都打印良好。但是,当我取消注释f.deletefile()
部分时,该应用程序崩溃并显示上述消息。代码在p("typeof",typeof(views[0].imageId));
p("typeof",typeof(views[0].imageId));
if(views[0].imageId != 1) {
var imageDir = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, '/Quotes/iphone/images/quoteimages');
var f = Titanium.Filesystem.getFile(imageDir.resolve() +"/"+views[0].imageId+".jpg");
p("path", imageDir.resolve() +"/"+views[0].imageId+".jpg");
p("file exists", f.exists());
p("should delete img",views[0].imageId);
if (f.exists() && f.writable && views[0].imageId != 1) {
p("XXXXXXX");
f.deleteFile();
}
}
我很困惑。 我也尝试过这样:
var f = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, '/Quotes/iphone/images/quoteimages/'+views[0].imageId+'.jpg'); Same error.
非常感谢您的帮助:)