Я использовал как GCD, так и performSelectorOnMainThread: waitUntilDone в своих приложениях и, как правило, считаю их взаимозаменяемыми - то есть performSelectorOnMainThread: waitUntilDone - обертка Obj-C для синтаксиса GCD C. Я думал об этих двух командах как эквивалент:
dispatch_sync(dispatch_get_main_queue(), ^{ [self doit:YES]; });
[self performSelectorOnMainThread:@selector(doit:) withObject:YES waitUntilDone:YES];
Я неверен? То есть, существует ли разница в исполнении команд 'Selectlect *' и GCD? Я прочитал много документации по ним, но еще не нашел окончательного ответа.