是否有任何情况下使用而不是 init]更好?

在iOS中,我知道有些时候[[NSFileManager alloc] init]更好 – 尤其是[NSFileManager defaultManager]可能不是线程安全的。 参考: http : //useyourloaf.com/blog/2011/06/12/nsfilemanager-defaultmanager-is-not-thread-safe.html

用[[NSFileManager alloc] init]代替它总是可以的吗?

文档声明[NSFileManager defaultManager]是线程安全的。

文档build议你应该创build自己的实例,如果你需要使用NSFileManagerDelegate

最后,创build自己的实例应该总是很好,但除非您需要委托,否则不需要创build自己的实例。

是。 只要使用[[NSFileManager alloc] init]总是可以的。 +defaultManager实际上只是为了方便,但是正如你所指出的那样,在使用它的时候存在线程安全方面的担忧。 只要确保你记得当你完成它时释放你的alloc的NSFileManager