是否可以通过 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
文档:
线程注意事项
共享的 NSFileManager 对象的方法可以安全地从多个线程中调用。但是,如果您使用委托来接收有关移动、复制、删除和链接操作状态的通知,您应该创建文件管理器对象的唯一实例,将您的委托分配给该对象,并使用该文件管理器来启动你的操作。