Безопасен ли поток NSFileManager?
Можно ли получить экземпляр NSFileManager через defaultManager и использовать его вне основной очереди?
Этот код в порядке?
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(q, ^{
NSFileManager *fm = [NSFileManager defaultManager];
});
Ответы
Ответ 1
Из Ссылка на класс NSFileManager:
Методы общего объекта NSFileManager можно вызвать из несколько потоков безопасно. Однако, если вы используете делегата для получения уведомления о статусе перемещения, копирования, удаления и ссылки операций, вы должны создать уникальный экземпляр файлового менеджера объект, назначьте своего делегата этому объекту и используйте этот файловый менеджер для запуска ваших операций.
Ответ 2
Из documentation:
Методы общего объекта NSFileManager можно безопасно вызывать из нескольких потоков. Однако, если вы используете делегат для получения уведомлений о статусе операций перемещения, копирования, удаления и ссылки, вы должны создать уникальный экземпляр объекта файлового менеджера, назначить своего делегата этому объекту и использовать этот файловый менеджер для запуска ваши операции.
Ответ 3
Непосредственно из NSFileManager
документации:
Вопросы Threading
Методы общего NSFileManager объект может быть вызван из нескольких потоков безопасно. Однако, если вы используете делегат получать уведомления о статусе перемещения, копирования, удаления и ссылки, вы должны создать уникальный экземпляр объект файлового менеджера, назначьте свой делегат этому объекту и используйте чтобы файловый менеджер начал ваши операции.