Действительные символы в имени класса в Objective-C

Что такое набор допустимых символов для класса Objective-C?

Конечно, основные соглашения об именах букв, цифр и подчеркивания все работают, но я ищу специальный символ, чтобы избежать конфликтов имен.

Символ $, похоже, работает, но я не нашел никакой документации. ссылка на язык не упоминает об этом.

Кто-нибудь другой? Любой "официальный" документ, на который я могу ссылаться?

Ответ 1

Исторически, компилятор Objective-C был основан на компиляторе GNU C, который допускал знаки доллара в идентификаторах как расширение. Насколько я знаю, это единственное исключение из правила именования идентификаторов с последовательностями букв, цифр и подчеркиваний, которые не начинаются с цифры.

Так как Apple переключилась на другую инструментальную цепочку для своих компиляторов, оказалось, что знак доллара поддерживается для обратной совместимости. Я бы не использовал его в своем новом коде, тем более что Apple не рекламирует его как функцию.

Ответ 2

Во время компиляции набор символов является тем, что компилятор C/С++ принимает как идентификатор.

Во время выполнения все UTF-8 идет.