Frage

Ich bekomme diesen Fehler:

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

Aus dieser Codezeile:

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

Wie kann ich das lösen?

War es hilfreich?

Lösung

Dank MacMades Kommentar habe ich es geschafft, das Problem zu lösen. Ich hätte es so schreiben sollen:

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

Wo (id) die überbrückte Besetzung ist, über die er sprach.

Andere Tipps

Verwenden Sie diesen Code für dieses Problem aus diesen Zeilen -Code

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

Wenn ich das richtig verstehe, ist das Problem nicht, dass Sie überbrückte Besetzung benötigen, sondern Ihre FirstViewController -Klasse nicht die Zxingdelegate -Schnittstellenklasse definiert, somit das Problem.

Zxingdelegate ist (basierend auf der Namensname) Schnittstellenklasse (Protokoll oder Delegierter), die Funktionen (Schnittstelle) deklariert, die durch die Klasse definiert werden müssen, die sie erbt (es sei denn, sie sind @Optional). So etwas wie reine (abstrakte) Klassen in C ++.

Sie würden also in Ihrer Header -Datei so etwas benötigen:

@interface FirstViewController : UIViewController <ZXingDelegate>

Und in Ihrer .m -Datei so etwas:

@implementation FirstViewController

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


@end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top