Question

je reçois cette erreur:

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

A partir de cette ligne de code:

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

Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Merci au commentaire de Macmade j'ai réussi à résoudre le problème. Je l'ai écrit ainsi:

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

Où (id) est le casting ponté dont il parlait.

Autres conseils

utiliser cette ligne de code pour cette question

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

Si je comprends bien, problème n'est pas que vous avez besoin moulé ponté plutôt votre classe FirstViewController ne définit pas la classe d'interface ZXingDelegate, donc la question.

ZXingDelegate est (en fonction du nom, je suppose) classe d'interface (protocole, ou son délégué) qui déclare fonctions (interface) qui doit être définie par la classe héritant (sauf si elles sont @optional). Quelque chose comme des classes virtuelles pur (résumé) en C ++.

Vous auriez besoin dans votre fichier d'en-tête quelque chose comme ceci:

@interface FirstViewController : UIViewController <ZXingDelegate>

Et dans votre fichier .m, quelque chose comme ceci:

@implementation FirstViewController

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


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