2012-10-21 106 views
2

的iOS 6,iPhone 5時,Xcode 4.5iOS 6的文檔文件夾不會自動更新文件

我有一個應用程序,讓用戶從互聯網上下載文件到文件夾,然後進行填充到一個數組,然後到實現代碼如下。與iOS 5,我的陣列和的tableview會自動與此代碼在viewWillAppear中更新:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSArray *dataArray = [[NSBundle bundleWithPath:[paths objectAtIndex:0]] pathsForResourcesOfType:@"mp3" inDirectory:nil]; 

與iOS 6,我注意到,文件夾犯規更新自己當新文件添加/刪除,除非我退出應用程序(退出從底部的多任務處理)並重新打開它,然後它將從文檔文件夾重新加載新的數據。

即使當我的應用程序加載viewWillAppear與上面相同的代碼,數據仍然是舊的。看起來像iOS 6現在有一個緩存文檔文件夾,並且緩存不會更新,直到應用程序重新啓動!

它在iOS的工作完全罰款5

感謝您的閱讀和幫助:)

回答

2

你不應該使用一個NSBundle訪問的文件目錄中的文件。改用NSFileManager:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString* path = [paths objectAtIndex:0]; 
NSError* error; 
NSFileManager* fm = [NSFileManager defaultManager]; 

for(NSString* filename in [fm contentsOfDirectoryAtPath:path error:&error]) { 
    if([filename hasSuffix:@"mp3"]) { 
     NSString *filePath = [path stringByAppendingPathComponent:filename]; 
     [_filelist addObject:filePath]; 
    } 
} 
+0

完美。感謝您的解決方案:) –