Конкатенация строки со значением NSTextField приводит к нечетным символам в Objective C

Я нахожусь на свой второй день изучения Objective C, Какао и IB. Это - вероятно, что-то действительно простое, но я не могу разработать его.

В основном у меня есть форма с NSTextField, когда пользовательские типы в этом поле и нажмут кнопку OK, приложение отобразит предупреждение, говорящее Привет сопровождаемый значением текстового поля.

Это все работает кроме конкатенации строк. Я использую следующий код для конкатенации строки "Привет" и значения NSTextField:

NSString *nameText = [NSString stringWithFormat:@"Hello %s", [nameTextField stringValue]];

Когда пользователь нажимает кнопку OK, предупреждение отображает "Привет +  Ÿpˇ"!

1
задан Camsoft 14 June 2010 в 11:31
поделиться

2 ответа

Camsoft,

NSString Obj-C является объектом, исправьте вызов формата с помощью:

NSString *nameText = [NSString stringWithFormat:@"Hello %@",[nameTextField stringValue]];

Обратите внимание на % @ вместо % s .

Фрэнк

1
ответ дан 2 September 2019 в 23:46
поделиться

stringValue возвращает объект NSString , а% s ожидает параметр c-string. Попробуйте вместо этого использовать% @:

NSString *nameText = [NSString stringWithFormat:@"Hello %@", [nameTextField stringValue]];
1
ответ дан 2 September 2019 в 23:46
поделиться