10

Czy można uzyskać instancję NSFileManager za pomocą defaultManager i użyć jej poza główną kolejką?Czy wątek NSFileManager jest bezpieczny?

Czy ten kod jest prawidłowy?

dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 

dispatch_async(q, ^{ 

    NSFileManager *fm = [NSFileManager defaultManager]; 

}); 

Odpowiedz

23

Od NSFileManager Class Reference:

Metody obiektu udostępnionego NSFileManager może być wywołana z wielu wątków zachowaniem bezpieczeństwa. Jeśli jednak używasz delegata do otrzymywania powiadomień o statusie przeniesienia, kopiowania, usuwania i łączenia operacji , powinieneś utworzyć unikalną instancję obiektu menedżera plików , przypisać delegata do tego obiektu i użyć tego pliku menedżer , aby zainicjować operacje.

7

Z documentation:

Metody obiektu udostępnionego NSFileManager może być wywołana z wielu wątków zachowaniem bezpieczeństwa. Jeśli jednak używasz delegata do otrzymywania powiadomień o stanie operacji przenoszenia, kopiowania, usuwania i łączenia, powinieneś utworzyć unikalną instancję obiektu menedżera plików, przypisać delegata do tego obiektu i użyć tego menedżera plików do zainicjowania twoje operacje.

5

Bezpośrednio z NSFileManager documentation:

gwintów Rozważania

Metody udostępnionego NSFileManager obiektu może być wywołana z wielu wątków zachowaniem bezpieczeństwa. Jeśli jednak użyjesz delegata do otrzymywania powiadomień o usunięciu i połączeniu operacji, powinieneś utworzyć unikalną instancję obiektu obiektu menedżera plików, przypisać delegata do tego obiektu i użyć , menedżer plików, aby zainicjować operacje.

+1

lol, w ciągu mniej niż 2 minut, trzy prawie dokładnie takie same odpowiedzi – Martin

Powiązane problemy