To jest pytanie typu "najlepsza praktyka" Nie mogę znaleźć dobrej odpowiedzi w Internecie. Tworzę statyczną bibliotekę kodu, która zapewnia między innymi kilka metod delegowania informacji o postępach.Czy moje metody delegatów na iOS powinny być zawsze zwracane w głównym wątku?
Biblioteka zarządza własnymi kolejkami, więc rzeczy takie jak pliki do pobrania nie są oczywiście wykonywane na głównym wątku, ale moje pytanie brzmi: czy powinienem zagwarantować, że moje metody delegatów są zawsze wywoływane w głównym wątku, czy dopuszczalne jest wywoływanie ich z poziomu wątki w kolejce, których używam? i polegać na programistach, którzy używają biblioteki, aby sprawdzić, czy jest w głównym wątku, jeśli chce robić aktualizacje UI w moich metodach delegatów?
Cheers, Sam
Dzięki za odpowiedź wydaje się, że "najlepsza praktyka" w tym przypadku naprawdę zależy od scenariusza. – Sammio2
To naprawdę zależy. Ale polecam zawsze używać kolejki "wewnętrznych prywatnych" do wykonywania bloków klienta. Jest to jedyny niezawodny sposób na uniknięcie przypadkowej martwej blokady przez kod użytkownika podczas wywoływania dispatch_sync() gdzieś w bloku. – CouchDeveloper
Dzięki, tak, używam wewnętrznych prywatnych kolejek w bibliotece. – Sammio2