typeof
это не функция, это ключевое слово и вообще не используется во время выполнения. Все, что __strong typeof(self)
делает здесь, говорит компилятору, как вычислять символ strongSelf
. Это не вызывает генерации кода времени выполнения, потому что во время выполнения не имеет значения, что это за тип на самом деле. Все эти решения принимаются во время компиляции.
Это то же самое, что и определение чего-либо, как int x;
Среда выполнения никоим образом не имеет ссылки на "int". Это просто тип C.
typeof
технически является расширением C, но Clang поддерживает его в качестве ключевого слова в режиме совместимости gcc, который используется по умолчанию. Подробнее о расширении см. Документацию GCC .