2011-10-28 88 views
1

在我的iPhone應用程序測試環境中,我正在讀取名爲ChineseCharTest的文件夾下的.png圖像,該文件夾位於我的項目的Resources文件夾下。我注意到,如果我更改了此文件夾的內容以使用不同的圖像運行新測試,則舊圖像不會從應用程序內存中刪除。我試圖在每次測試運行時刪除它們,以便讀取的圖像是最新的。以下是我目前使用的代碼:在iPhone資源中刪除文件夾的內容

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:操作無法完成。有沒有人知道我在做什麼錯或以另一種方式做到這一點?

非常感謝。

回答

2

應用程序包中的文件是隻讀文件,任何嘗試從iOS刪除或修改它們都將失敗。

如果您實際上正在討論使用不同的圖像資源重建您的應用程序,並且您發現舊的應用程序仍在您的測試設備上的應用程序包中,那麼您將需要清理項目,從測試中刪除應用程序設備然後重新安裝它。

+0

真是痛苦。謝謝。 –

相關問題