Является ли делегирование Objective-C действительно многопоточным? - PullRequest
4 голосов
/ 27 августа 2011

Мой вопрос очень прост: действительно ли шаблон проектирования делегатов в iOS действительно многопоточный?Имеется в виду, происходит ли фактическое параллельное выполнение или все еще выполняется в основном потоке?

Ответы [ 2 ]

4 голосов
/ 27 августа 2011

Это зависит от того, вы вызываете методы делегата в другом потоке или нет. В общем случае методы делегата вызываются в том же потоке после определенного события. Вкратце, многопоточность не имеет ничего общего с делегированием, и из моего опыта Apple всегда публикует методы обратного вызова делегата в главном потоке (однако, вы можете не делать этого, но в этом случае все может стать неприятным).

3 голосов
/ 27 августа 2011

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

...