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