Difficultés à afficher% en NSRunAlertPanel
-
12-10-2019 - |
Question
Je développe une application de bureau où je veux montrer un message dans le panneau d'alerte à l'aide NSRunAlertPanel. Je fais les choses suivantes:
NSString *title = @"% Test";
NSString *message = @"% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);
Le panneau d'alerte affiche le titre correctement. Test de i.e.% de Mais, le message est un message is; Je veux afficher un message de test%.
Comment puis-je résoudre ce problème?
Merci à l'avance.
Pas de solution correcte
Autres conseils
Essayez ceci:
NSString *title = @"% Test";
NSString *message = @"%% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);
Pourquoi?
NSRunAlertPanel
utilise NSBeginAlertSheet
. En regardant le documentation NSBeginAlertSheet vous pouvez voir qu'il ya plus de paramètres après msg (spécifié par le ...
).
Cela nous indique que le titre est juste une chaîne littéralement affiché, mais le message peut avoir des paramètres de format de la même manière que [NSString stringWithFormat:]
fait.
La façon dont une chaîne précise qu'il va être un paramètre est en utilisant un caractère% à savoir% i signifie « mettre un entier ici »,% @ signifie « mettre un la description de l'objet ici . Vous venez de mettre un% par lui-même, qui fait bouger les choses très confus!
Le double %% signifie que ce pour cent ne me vous dire que je veux que vous mettez quelque chose de spécial là-dedans, je veux juste le% s'il vous plaît.