objc_msgSend, функция, используемая для отправки динамических сообщений в Objective-C, немедленно проверяет первый аргумент (получатель сообщения) и возвращает, если он == ноль.Следовательно, единственными издержками при обмене сообщениями с нулевым значением является вызов динамически связанной библиотечной функции, который немного дороже, чем вызов «внутри двоичной» функции.В целом, является ли один подход более эффективным, чем другой?Составные условные операторы обычно требуют дополнительного ветвления, поэтому ответ не определим, не смотря на код, сгенерированный компилятором, но, что более важно, для профилирования работающей программы.Преждевременная оптимизация - это плохая вещь ™, но я поздравляю вас за то, что вы на самом деле учитываете эффективность и ставите под сомнение такие «идиомы», как этот.