Implementación de ZBar QR Code Reader en UIView

Realmente necesito ayuda aquí. Soy bastante nuevo en iOS / Objective-C, lo siento si la resolución del problema es obvia o si mi código es terrible. ¡Sé fácil conmigo! Todos los derechos reservados

Estoy luchando para integrar ZBarSDK para leer códigos QR en una aplicación de iPad que estoy creando. Si utilizo ZBarReaderController (de los cuales hay muchos tutoriales y guías de implementación), funciona bien. Sin embargo, quiero hacer que la camera salga en una UIView en lugar de la camera de pantalla completa.

Ahora he llegado a hacer que la vista de la camera (readerView) aparezca en UIView (ZBarReaderView) como se esperaba, pero me sale un error cuando escanea un código. El error no aparece hasta que se escanea un código que me hace creer que esto está relacionado con el delegado o algo más.

Estas son las partes importantes de mi código: (ZBarSDK.h se importa en el file PCH)

SignInViewController.h

#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @class AVCaptureSession, AVCaptureDevice; @interface SignInViewController : UIViewController < ZBarReaderDelegate > { ZBarReaderView *readerView; UITextView *resultText; } @property (nonatomic, retain) UIImagePickerController *imgPicker; @property (strong, nonatomic) IBOutlet UITextView *resultText; @property (strong, nonatomic) IBOutlet ZBarReaderView *readerView; -(IBAction)StartScan:(id) sender; 

SignInViewController.m

 #import "SignInViewController.h" @interface SignInViewController () @end @implementation SignInViewController @synthesize resultText, readerView; -(IBAction)StartScan:(id) sender { readerView = [ZBarReaderView new]; readerView.readerDelegate = self; readerView.tracksSymbols = NO; readerView.frame = CGRectMake(30,70,230,230); readerView.torchMode = 0; readerView.device = [self frontFacingCameraIfAvailable]; ZBarImageScanner *scanner = readerView.scanner; [scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0]; [self relocateReaderPopover:[self interfaceOrientation]]; [readerView start]; [self.view addSubview: readerView]; resultText.hidden=NO; } - (void) readerControllerDidFailToRead: (ZBarReaderController*) reader withRetry: (BOOL) retry{ NSLog(@"the image picker failing to read"); } - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info { NSLog(@"the image picker is calling successfully %@",info); id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults]; ZBarSymbol *symbol = nil; NSString *hiddenData; for(symbol in results) hiddenData=[NSString stringWithString:symbol.data]; NSLog(@"the symbols is the following %@",symbol.data); resultText.text=symbol.data; NSLog(@"BARCODE= %@",symbol.data); NSLog(@"SYMBOL : %@",hiddenData); resultText.text=hiddenData; } 

El error que obtengo cuando se escanea un código:

 2012-12-16 14:28:32.797 QRTestApp[7970:907] -[SignInViewController readerView:didReadSymbols:fromImage:]: unrecognized selector sent to instance 0x1e88b1c0 2012-12-16 14:28:32.799 QRTestApp[7970:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SignInViewController readerView:didReadSymbols:fromImage:]: unrecognized selector sent to instance 0x1e88b1c0' 

No estoy muy preocupado por lo que sucede con los resultados por el momento, solo quiero superar este error. Me llevó años solo conseguir que la camera apareciera en UIView debido a la falta de tutorial o documentation en ZBarReaderView (para principiantes, de todos modos). Gracias a todos.

Arreglé esto Tenía un nombre de delegado incorrecto. Debería haber sido "ZbarReaderViewDelegate". Me estaba perdiendo la parte "vista". ¡Doh!

 @interface SignInViewController : UIViewController < ZBarReaderViewDelegate > { ZBarReaderView *readerView; UITextView *resultText; }