¿Cómo puedo evitar el error "No se puede convertir 'UIButtonType' a 'UIBarButtonItemStyle' al pasar el argumento?"

Estoy incorporando zxing (escaneo de qrcode) en mi proyecto de iPhone. Seguí las instrucciones para que funcionara, que incluían cambiar el nombre del archivo de clase de .m a .mm.

Cuando hago esto, mi proyecto no se compila con el error: "no se puede convertir 'UIButtonType' a 'UIBarButtonItemStyle' en el paso de argumentos", lo que ocurre en el siguiente código en mi clase (agregando un botón para permitir que el usuario invoque la operación de escaneo)

// Add scan button
UIBarButtonItem *qrScanButton = [[UIBarButtonItem alloc] initWithTitle:@"Scan" 
    style: UIButtonTypeInfoLight 
    target:self action:@selector(qrScanButtonPressed)]; 
    [[self navigationItem] setLeftBarButtonItem: qrScanButton];
    [qrScanButton release];

Parece por el error que el problema es con

estilo: UIButtonTypeInfoLight

Si comento todo el bloque, el código se compila bien. Deja de funcionar cuando el tipo de archivo se convierte en .mm. Este es un bloque de código bastante estándar para agregar botones de retroceso alternativos, etc.

Si alguien tiene alguna idea de cómo resolverlo, se lo agradecería mucho.

preguntado el 08 de enero de 11 a las 22:01

1 Respuestas

El problema es que "UIButtonTypeInfoLight" no es válido UIBarButtonItemStyle. (Busque las constantes UIBarButtonItemStyle en la parte inferior del enlace anterior).

Los valores válidos son actualmente (iOS 4.2):

  • UIBarButtonItemStylePlain
  • UIBarButtonItemStyleBordered
  • UIBarButtonItemStyleDone

Estás pasando en UIButtonTypeInfoLight, que es un UIButtonType y sin sentido en el alcance de un UIBarButtonItem.

Respondido el 09 de enero de 11 a las 01:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.