Ошибка отображения% в NSRunAlertPanel
Я разрабатываю приложение для рабочего стола, в котором я хочу показать сообщение на панели предупреждений с помощью NSRunAlertPanel. Я делаю следующие вещи:
NSString *title = @"% Test";
NSString *message = @"% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);
Панель предупреждений показывает заголовок правильно. т.е.% Test Но сообщение является est Message; Я хочу отобразить% Test Message.
Как мне решить эту проблему?
Заранее спасибо.
1 ответ
Попробуй это:
NSString *title = @"% Test";
NSString *message = @"%% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);
Зачем?
NSRunAlertPanel
использования NSBeginAlertSheet
, Глядя на документацию по NSBeginAlertSheet, вы можете увидеть, что после msg есть больше параметров (определяемых ...
).
Это говорит нам о том, что заголовок - это просто строка, отображаемая буквально, но сообщение может иметь параметры формата так же, как [NSString stringWithFormat:]
делает.
Способ, которым строка определяет наличие параметра, заключается в использовании символа%, то есть% i означает "поставить целое число здесь",% @ означает "поместить описание объекта здесь". Вы только что положили%, что очень запутывает!
Двойной %% означает, что этот процент не я говорю вам, что я хочу, чтобы вы добавили туда что-то особенное, я просто хочу%, пожалуйста.