Domanda

Sto sviluppando un'applicazione desktop in cui voglio mostrare un messaggio nel pannello di avviso tramite NSRunAlertPanel. Sto facendo le seguenti cose:

NSString *title = @"% Test";
NSString *message = @"% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);

Il pannello di allarme mostrano il titolo in modo corretto. cioè% Test Ma, il messaggio è est messaggio; Voglio visualizzare% Test Message.

Come faccio a risolvere questo problema?

Grazie in anticipo.

Nessuna soluzione corretta

Altri suggerimenti

Prova questo:

NSString *title = @"% Test";
NSString *message = @"%% Test Message";
NSRunAlertPanel(title, message, @"Ok" ,@"Cancel" ,nil);

Perché?

NSRunAlertPanel utilizza NSBeginAlertSheet. Guardando il documentazione per NSBeginAlertSheet si può vedere che ci sono più parametri dopo msg (specificato dal ...).

Questo ci dice che il titolo è solo una stringa visualizzata letteralmente ma il messaggio può avere parametri di formato allo stesso modo che [NSString stringWithFormat:] fa.

Il modo che specifica una stringa che sta per essere un parametro utilizzando un carattere% ie% i significa ' mettere un intero qui ',% @ significa ' pose descrizione dell'oggetto qui '. Hai appena messo un% di per sé, che ottiene le cose molto confuse!

Il doppio %% significa che questo è per cento non mi hai detto che voglio che mettiate qualcosa di speciale in là, ho davvero voglia l'% per favore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top