3

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;
    }
}

どんなアドバイスも素晴らしいでしょう。私は現時点でこれに非常に混乱しています。乾杯。

4

2 に答える 2

0

ZBar のドキュメントを見ると、デリゲート メソッドのシグネチャが次のようになっていることがわかります。

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

これは、上記のものと同じではありません。zbr" " を " " に置き換えるreaderViewと、デリゲート メソッド呼び出されます。

于 2013-05-19T18:18:12.003 に答える