通过 defaultManager 获取 NSFileManager 实例并在主队列外使用它是否可行?
这段代码是否正确?
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(q, ^{
NSFileManager *fm = [NSFileManager defaultManager];
});
通过 defaultManager 获取 NSFileManager 实例并在主队列外使用它是否可行?
这段代码是否正确?
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(q, ^{
NSFileManager *fm = [NSFileManager defaultManager];
});
共享的 NSFileManager 对象的方法可以在多个线程中安全地调用。但是,如果您使用委托接收有关移动、复制、删除和链接操作状态的通知,您应创建唯一的文件管理器对象实例,将您的委托分配给该对象,并使用该文件管理器来启动您的操作。
NSFileManager
文档中得知:
线程注意事项
共享的NSFileManager对象的方法可以安全地从多个线程调用。但是,如果您使用委托来接收有关移动、复制、删除和链接操作状态的通知,则应创建一个唯一的文件管理器对象实例,将您的委托分配给该对象,并使用该文件管理器启动您的操作。