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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top