2012-09-08 11 views
8

Ho caricato il progetto zXing nel mio progetto. Si carica bene, lo scanner zXing si apre dopo una chiamata a pulsante.iPhone zXing QR Scanner - la funzione didscanresult non si attiva mai

posso respingere il controller della vista sul thezxingControllerDidCancel ma quando la scansione di un codice a barre, i codici non vengono mai riconosciute e quindi la funzione didScanResult mai incendi.

Qualcuno ha qualche idea su questo?

La funzione didScanResult è riportata di seguito.

-(void)zxingController:(ZXingWidgetController *)controller didScanResult:(NSString *)result{ 
resultLabel.text = result; 
NSLog(@"did scan!!!"); 
[self dismissModalViewControllerAnimated:NO]; 

}

Nota: Non sono sicuro se questo è rilevante, ma quando lo scanner viene in su, ottengo questo registrato dal app: "wait_fences: non è riuscito a ricevere risposta: 10.004.003"

+0

Potresti postare come creare e mostrare ZXingWidgetController? –

+0

Fondamentalmente ho eseguito questo tutorial aggiungendolo al mio progetto (http://yannickloriot.com/2011/04/how-to-install-zxing-in-xcode-4/) Quindi li ho importati nei miei viewcontrollers .h file Utilizzato le funzioni 'didScanResult' e 'zxingControllerDidCancel' di ZXingDelegate. zxingControllerDidCancel funziona perfettamente come precedentemente indicato. Questo aiuto? –

+0

Guarda [questa domanda] (http://stackoverflow.com/questions/1371346/wait-fences-failed-to-receive-reply-10004003) per risolvere l'errore 10004003. – Daniel

risposta

4

Questo tutorial non dice che è necessario aggiungere uno QRCodeReader all'insieme di lettori del proprio ZXingWidgetController.

ZXingWidgetController ha una proprietà chiamata readers, che è un NSSet contenente le istanze dei lettori (ad esempio un'istanza di QRCodeReader). Approssimativamente, il compito dei lettori è quello di analizzare le immagini scattate dalla fotocamera e di estrarre le informazioni codificate. Il tuo ZXingWidgetController deve conoscere i lettori che dovrebbe utilizzare, altrimenti non ha alcuna possibilità di fare qualcosa di significativo. Quindi devi impostare la proprietà readers prima di presentare ZXingWidget.

Il progetto ZXing ha un'app di esempio che lo dimostra. Se si utilizza ARC, quindi

ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO]; 
QRCodeReader* qRCodeReader = [[QRCodeReader alloc] init]; 
NSSet *readers = [[NSSet alloc] initWithObjects:qRCodeReader,nil]; 
widController.readers = readers; 
[self presentModalViewController:widController animated:YES]; 

dovrebbe fare.

+0

Sei sicuro che sei un campione! Grazie mille per il tuo aiuto - Funziona perfettamente ora :) –

Problemi correlati