номер
Литералы NSString «выделяются» во время компиляции и являются частью текстового сегмента вашей программы.
Редактировать
Чтобы ответить на другую часть вопроса, если компилятору не удастся выделить достаточно памяти для литерала, оператор if не выполнится, но компиляция будет.
Я не знаю, каков эффективный верхний предел длины строкового литерала, но он должен быть меньше NSIntegerMax
unichars
, потому что NSNotFound
определяется как NSIntegerMax
. Согласно clang docs длина в байтах строкового литерала равна unsigned int
, а строковые литералы NSString представляют собой последовательности unichars
.