为什么Apple建议在使用NSFileManagerDelegate时使用自己的NSFileManager?

时间:2015-07-08 01:50:17

标签: ios nsfilemanager

defaultManager的苹果文档中,他们说:

  

此方法始终返回相同的文件管理器对象。如果计划使用文件管理器的委托来接收有关基于文件的操作完成的通知,则应该创建NSFileManager的新实例(使用init方法)而不是使用共享对象。

我只是想知道他们为什么建议在使用文件管理器的委托时使用新的NFileManager实例?如果我使用共享文件管理器来执行此操作会出错?

我唯一能看到的是你的委托对象会收到很多你不想知道的通知,还有其他的吗?

1 个答案:

答案 0 :(得分:1)

你的最后一段几乎就是这样。如果在共享文件管理器上设置委托,则您的委托最终会以超出您想要的方式调用。通过创建NSFileManager的特定实例并设置该实例的delegate,您就知道委托方法仅针对文件管理器的特定用途而不是所有默认用途进行调用

请记住,默认文件管理器实例可能比您自己的代码要多得多。许多其他库和框架也将使用它。