在我的iPhone应用程序测试环境中,我正在从项目的Resources文件夹下的一个名为ChineseCharTest的文件夹中读取.png图像。我注意到,如果我更改了此文件夹的内容以使用不同的图像运行新测试,则旧的图像不会从应用程序内存中删除。我每次运行测试时都试图删除它们,因此读入的图像是最新的。这是我目前使用的代码:
NSError *err;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString* resources_path = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/ChineseCharTest"];
NSArray *prev_test_contents = [fileManager contentsOfDirectoryAtPath:resources_path error:nil];
NSEnumerator *e = [prev_test_contents objectEnumerator];
NSString *png_filename;
NSString *extension = @"png";
// Remove previous files with .png extension from ChineseCharTest folder
while ((png_filename = [e nextObject])) {
if ([[png_filename pathExtension] isEqualToString:extension]) {
BOOL success = [fileManager removeItemAtPath:[resources_path stringByAppendingPathComponent:png_filename] error:&err];
if (!success) {
NSLog(@"Error removing file: %@", [err localizedDescription]);
}
}
}
以前运行的应用中的图片未被删除。每次尝试的错误返回是看似常见的Cocoa错误513:操作无法完成。有谁知道我做错了什么或其他方式这样做?
非常感谢。
答案 0 :(得分:2)
您应用套装中的文件是只读的,任何从iOS删除或修改它们的尝试都将失败。
如果您实际上正在讨论使用不同的图像资源重建应用程序并且您发现旧的应用程序仍在测试设备上的应用程序包中,那么您将需要清理项目,从测试设备中删除应用程序然后重新安装它。