Вы не можете передать адрес одного char
значения -stringWithUTF8String
. Эта функция ожидает строку с нулевым символом в конце, а вы ее не передаете. Это приводит к неопределенному поведению : все может произойти. Может показаться, что все прошло успешно, может произойти сбой или может стереться ваша файловая система. Но, скорее всего, это просто приведет к краху вашей программы.
Вы должны создать двухсимвольный массив с нулевым символом в конце:
char t[2] = {'A' + i, 0}; // Two-character null-terminated array
NSString* alphabetString = [NSString stringWithUTF8String:t];
Кроме того, вы также можете использовать -stringWithFormat:
со спецификатором формата %c
, чтобы получить строку, содержащую один символ:
NSString* alphabetString = [NSString stringWithFormat:@"%c", 'A' + i];