Объединение строки со значением NSTextField приводит к появлению нечетных символов в Objective-C

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

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

Все это работает, кроме конкатенации строк. Я использую следующий код для объединения строки «Hello» и значения NSTextField:

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

Когда пользователь нажимает кнопку ОК, отображается предупреждение «Привет ‡ √Ÿpˇ»!


person Camsoft    schedule 14.06.2010    source источник


Ответы (2)


Камсофт,

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

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

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

откровенный

person Frank C.    schedule 14.06.2010
comment
Бинго! Я понимаю, в этом есть смысл. Спасибо! - person Camsoft; 14.06.2010

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

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