Подтвердить что ты не робот

Безопасен ли поток NSFileManager?

Можно ли получить экземпляр NSFileManager через defaultManager и использовать его вне основной очереди?

Этот код в порядке?

dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_async(q, ^{

    NSFileManager *fm = [NSFileManager defaultManager];

});
4b9b3361

Ответ 1

Из Ссылка на класс NSFileManager:

Методы общего объекта NSFileManager можно вызвать из несколько потоков безопасно. Однако, если вы используете делегата для получения уведомления о статусе перемещения, копирования, удаления и ссылки операций, вы должны создать уникальный экземпляр файлового менеджера объект, назначьте своего делегата этому объекту и используйте этот файловый менеджер для запуска ваших операций.

Ответ 2

Из documentation:

Методы общего объекта NSFileManager можно безопасно вызывать из нескольких потоков. Однако, если вы используете делегат для получения уведомлений о статусе операций перемещения, копирования, удаления и ссылки, вы должны создать уникальный экземпляр объекта файлового менеджера, назначить своего делегата этому объекту и использовать этот файловый менеджер для запуска ваши операции.

Ответ 3

Непосредственно из NSFileManager документации:

Вопросы Threading

Методы общего NSFileManager объект может быть вызван из нескольких потоков безопасно. Однако, если вы используете делегат получать уведомления о статусе перемещения, копирования, удаления и ссылки, вы должны создать уникальный экземпляр объект файлового менеджера, назначьте свой делегат этому объекту и используйте чтобы файловый менеджер начал ваши операции.