Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在UITableView中自动观察文件系统更改_Iphone_Nsfilemanager - Fatal编程技术网

Iphone 在UITableView中自动观察文件系统更改

Iphone 在UITableView中自动观察文件系统更改,iphone,nsfilemanager,Iphone,Nsfilemanager,我希望有人能提出一种方法,让我可以用UITableView自动“观察”文件系统中的更改 我有一个UITableView,其中填充了目录中文件的内容 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSFileManager *manage

我希望有人能提出一种方法,让我可以用UITableView自动“观察”文件系统中的更改

我有一个UITableView,其中填充了目录中文件的内容

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager directoryContentsAtPath:documentsDirectory];
然后,我在cellForRowAtIndexPath中使用这个数组来显示项目。现在,如果我添加了对删除项的支持,那么还需要添加一个步骤:我必须同时删除物理文件和更新数组

一定有更好的办法,但我找了很多,还是找不到


谢谢

通常这可以通过
NSWorkspace
实现。。。这在iPhone上不受支持。但是,因为除了您之外,没有人应该在您的文档目录中编写,所以您可以轻松地实现一个包含此“附加步骤”的解决方案。我不认为这太不雅观。

您可以将NSFileManager封装在自己的类中,该类将通过KVO、NSNotification或特别委托通知您的代码。这样的类可以很容易地通过不同的项目重用;下面是此类标题的一个片段:

@interface FileManagerWrapper : NSObject 
{
@private
    NSFileManager *_fileManager;
    NSString *_documentsDirectory;
    id<FileManagerWrapperDelegate> _delegate;

}

@property (nonatomic, copy) NSString *documentsDirectory;
@property (nonatomic, assign) id<FileManagerWrapperDelegate> delegate;

- (void)removeFile:(NSString *)path;

@end
@interface filemanagerRapper:NSObject
{
@私人的
NSFileManager*\u fileManager;
NSString*_文档目录;
身份证代表;
}
@属性(非原子,副本)NSString*Documents目录;
@属性(非原子,赋值)id委托;
-(void)removeFile:(NSString*)路径;
@结束