[NSFileManager defaultManager] 与[[NSFileManager alloc] init]的区别分析

来源:互联网 发布:c语言字符串转化为数字 编辑:程序博客网 时间:2024/05/21 14:51
我们先看看xcode 的document 是怎么样说的:

defaultManager
Returns the default NSFileManager object for the file system.

+ (NSFileManager *)defaultManager
Return Value
The default NSFileManager object for the file system.

Discussion
This will always return the same instance of the file manager. The returned object is not thread safe.

In Mac OS X v 10.5 and later you should consider using [[NSFileManager alloc] init] rather than the singleton method defaultManager. Using [[NSFileManager alloc] init] instead, the resulting NSFileManager instance is thread safe.


因此,[NSFileManager defaultManager]  返回全局的默认NSFileManager *实例,不论调用多少次,返回指针地址不变。
[[NSFileManager alloc] init] 返回一个新的NSFileManager *实例,每次调用返回一个不同的指针地址。

所以安全起见,就调用[[NSFileManager alloc] init]而不是[NSFileManager defaultManager]  。

0 0
原创粉丝点击