2013-05-19 2 views
3

Пытается использовать ZBar для захвата штрих-кода. На данный момент у меня есть следующий код. Сканер показывает и, как представляется, сканирует штрих-код, когда вокруг кода появляется зеленый оверлей. Я не знаю, как захватить декодированные результаты.Сканирование и запись штрих-кода с ZBar

Возможно, я ошибаюсь, поэтому подумал, что я спрошу. При сканировании ничего не выводится на консоль, поэтому не думайте, что didReadSymbols вызывается вообще.

.h

@interface ScannerViewController : UIViewController <ZBarReaderDelegate> { 
} 

@property (strong, nonatomic) IBOutlet UILabel *readerResult; 
@property (strong, nonatomic) IBOutlet UIView *readerView; 
@property (strong, nonatomic) IBOutlet ZBarReaderView *zbr; 

.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // force class to load so it may be referenced directly from nib 
    [ZBarReaderViewController class]; 

    ZBarReaderViewController *reader= [ZBarReaderViewController new]; 
    reader.readerDelegate = self; 

    ZBarImageScanner *scanner = reader.scanner; 
    //reader.cameraOverlayView = self.readerView; 
    [scanner setSymbology: 0 
          config: ZBAR_CFG_ENABLE 
           to: 1]; 
    [reader setShowsZBarControls:NO]; 
    [reader.readerView start]; 
    self.zbr = reader.readerView; 
    [self.view addSubview:reader.view]; 

} 

- (void) zbr: (ZBarReaderView*) view 
    didReadSymbols: (ZBarSymbolSet*) syms 
      fromImage: (UIImage*) img 
{ 
    NSLog(@"Scanner used"); 
    //do something useful with results and display resultText in resultViewController 
    for(ZBarSymbol *sym in syms) { 
     NSLog(@"Logged"); 
     //return resultText; 
     break; 
    } 
} 

Любой совет будет большим. На данный момент я очень смущен этим. Приветствия.

+0

Одинаковый вопрос здесь –

ответ

0

Когда я смотрю на документацию для Zbar, I see the delegate method signature is:

- (void) readerView:(ZBarReaderView*)readerView didReadSymbols:(ZBarSymbolSet*)symbols fromImage:(UIImage*)image 

, который не то же самое, что у вас есть выше. Замените «zbr» на «readerView», и ваш делегатский метод должен получить вызов.

0

Я добавил ниже интерфейс ScannerViewController.

ZBarReaderViewController *reader; 

Затем я изменил метод чтения ниже, и он отлично работает.

- (void) imagePickerController: (UIImagePickerController*) reader 
didFinishPickingMediaWithInfo: (NSDictionary*) info 
{ 
    id<NSFastEnumeration> results = 
    [info objectForKey: ZBarReaderControllerResults]; 
    UIImage *image = 
    [info objectForKey: UIImagePickerControllerOriginalImage]; 
    NSString *resultText = [[NSString alloc] init]; 
    for(ZBarSymbol *sym in results) { 

     NSLog(@"%@", sym.data); 
     resultText = sym.data; 
     //return resultText; 
     break; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^