Думайте о detachNewThreadSelector:toTarget:withObject:
как о вызове заданного метода данного объекта с заданным аргументом (или игнорируйте аргумент, если метод имеет нулевые параметры), но вызывайте метод во вновь созданном потоке.
Например:
[NSThread detachNewThreadSelector:@selector(expensiveComputationWithObjects:)
target:someCalculatorObject
withObject:someVeryLargeArray]
Таким образом, метод обеспечивает очень удобный способ отправки вызовов методов в фоновые потоки (хотя он не позволяет повторно использовать существующий поток).
Другим небольшим недостатком является то, что обсуждаемые методы должны иметь не более одного параметра, хотя это ограничение можно обойти, если целевой метод получит структуру (словарь или другой класс), которая содержит фактические аргументы.