Pregunta

Entiendo este error:

Cannot initialize a parameter of type 'id<ZXingDelegate>'
with an lvalue of type 'FirstViewController *const __strong'

De esta línea de código:

ZXingWidgetController *widController =
    [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES
                                                           OneDMode:NO];

¿Como puedo resolver esto?

¿Fue útil?

Solución

Gracias al comentario de MacMade, logré resolver el problema. Debería haberlo escrito de esta manera:

ZXingWidgetController *widController =
    [[ZXingWidgetController alloc] initWithDelegate:***(id)** self showCancel:YES 
                                                                     OneDMode:NO];

Donde (id) está el elenco puente del que estaba hablando.

Otros consejos

Use esta línea de código de apagado para este problema

ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:(id<ZXingDelegate>)self showCancel:YES OneDMode:NO];

Si entiendo esto correctamente, el problema no es que necesite un reparto puenteado, sino que su clase de controlador de visión firstview no está definiendo la clase de interfaz ZxingDelegate, por lo tanto, el problema.

ZxingDelegate es (basado en el nombre de la clase de interfaz (protocolo o delegado) que declara funciones (interfaz) que deben definirse por clase que la hereda (a menos que sean @Optionales). Algo como clases puras-virtuales (abstractas) en C ++.

Entonces necesitaría en su archivo de encabezado algo como esto:

@interface FirstViewController : UIViewController <ZXingDelegate>

Y en su archivo .m, algo como esto:

@implementation FirstViewController

//......
-(void) SomeFunctionThat_ZXingDelegate_declares
{
    // .... do something here....
}
//......


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