Pregunta

Estoy desarrollando una aplicación de escritorio donde quiero mostrar un mensaje en el panel de alerta mediante NSRunAlertPanel. Estoy haciendo lo siguiente:

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

El cuadro de alarma de mostrar el título correctamente. es decir% Prueba Sin embargo, el mensaje es est mensaje; Quiero mostrar% Mensaje de prueba.

¿Cómo puedo solucionar este problema?

Gracias de antemano.

No hay solución correcta

Otros consejos

Prueba esto:

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

¿Por qué?

NSRunAlertPanel utiliza NSBeginAlertSheet. En cuanto a la documentación para NSBeginAlertSheet se puede ver que hay más parámetros después msg (especificado por el ...).

Esto nos dice que el título es más que una cadena está representada literalmente, pero el mensaje puede tener parámetros de formato de la misma manera que lo hace [NSString stringWithFormat:].

La forma en que especifica una cadena que no va a ser un parámetro es mediante el uso de un carácter% es decir,% i significa ' poner un entero aquí ',% @ significa ' poner una Descripción del objeto aquí '. Usted acaba de poner un% por sí mismo, lo que hace las cosas muy confuso!

La doble %% significa este porcentaje no me está usted diciendo que quiero que usted ponga nada en especial allí, Realmente sólo quiero el favor%.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top