iOS 6文档文件夹不会自动更新文件

时间:2012-10-21 08:19:57

标签: iphone objective-c ios6 xcode4.5

iOS 6,iPhone 5,Xcode 4.5

我有一个应用程序,允许用户将文件从Internet下载到文档文件夹,然后将它们填充到数组中,然后填充到tableview。使用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中运行得非常好。

感谢阅读和帮助:)

1 个答案:

答案 0 :(得分: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];
    }
 }