Действительные символы в имени класса в Objective-C
Что такое набор допустимых символов для класса Objective-C?
Конечно, основные соглашения об именах букв, цифр и подчеркивания все работают, но я ищу специальный символ, чтобы избежать конфликтов имен.
Символ $, похоже, работает, но я не нашел никакой документации. ссылка на язык не упоминает об этом.
Кто-нибудь другой? Любой "официальный" документ, на который я могу ссылаться?
Ответы
Ответ 1
Исторически, компилятор Objective-C был основан на компиляторе GNU C, который допускал знаки доллара в идентификаторах как расширение. Насколько я знаю, это единственное исключение из правила именования идентификаторов с последовательностями букв, цифр и подчеркиваний, которые не начинаются с цифры.
Так как Apple переключилась на другую инструментальную цепочку для своих компиляторов, оказалось, что знак доллара поддерживается для обратной совместимости. Я бы не использовал его в своем новом коде, тем более что Apple не рекламирует его как функцию.
Ответ 2
Во время компиляции набор символов является тем, что компилятор C/С++ принимает как идентификатор.
Во время выполнения все UTF-8 идет.