0

Iphone と Ipad 用の QR コード リーダーを開発しています。QRコードを読み取るためにZBarライブラリを使用しています。しかし、qr コードに注目すると、アプリケーションは何もしません。ドキュメントセクションのzbarサイトで提供されたコードを使用しています。これが私のコードです:

 ZBarReaderViewController *barReader = [ZBarReaderViewController new];
    barReader.readerDelegate = self;
    [barReader.scanner setSymbology:ZBAR_QRCODE config:ZBAR_CFG_ENABLE to:0];
    barReader.readerView.zoom = 1.0;
    barReader.showsCameraControls = NO;
    barReader.showsZBarControls = NO;
    barReader.wantsFullScreenLayout = NO;
    barReader.title = @"QRCode Reader";
    [self presentModalViewController:barReader animated:YES];

そして

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

関数私はこのようなqrcodeを取得しています

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    ZBarSymbolSet *symbols = [info objectForKey:ZBarReaderControllerResults];
    ZBarSymbol *symb = nil;
    NSString *qrCode = nil;

    for(symb in symbols)
    {
        qrCode = [NSString stringWithString:symb.data];
    }

    NSLog(@"The results = %@",qrCode);

[self dismissModalViewControllerAnimated:YES];
4

3 に答える 3

4

ZBarReaderViewDelegate を使用しないのはなぜですか?

- (void)readerView:(ZBarReaderView *)view didReadSymbols:(ZBarSymbolSet *)syms fromImage:(UIImage *)img
{
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

    for (ZBarSymbol *sym in syms)
    {
        qrCode = [NSString sym.data];
    }

    NSLog(@"The results = %@",qrCode);
}
于 2013-04-29T10:26:03.817 に答える
2

このコードは私にとってはうまくいきます:.hファイル

        ADD delegate protocol
        < ZBarReaderDelegate >

.m ファイル

スキャン用

    - (IBAction) scanButtonClick
    {

                ZBarReaderViewController *reader = [ZBarReaderViewController new];
                reader.readerDelegate = self;
                reader.supportedOrientationsMask = ZBarOrientationMaskAll;
                ZBarImageScanner *scanner = reader.scanner;
                // TODO: (optional) additional reader configuration here

                // EXAMPLE: disable rarely used I2/5 to improve performance
                [scanner setSymbology: ZBAR_I25
                       config: ZBAR_CFG_ENABLE
                           to: 0];

                // present and release the controller
                [self presentModalViewController: reader
                        animated: YES];
                [reader release];
    }

以下を使用して取得/取得します。

    - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
    {
        // ADD: get the decode results
        id<NSFastEnumeration> results =
        [info objectForKey: ZBarReaderControllerResults];
        ZBarSymbol *symbol = nil;
        for(symbol in results)
            // EXAMPLE: just grab the first barcode
            break;

        // EXAMPLE: do something useful with the barcode data
        resultText.text = symbol.data;

        // EXAMPLE: do something useful with the barcode image
        resultImage.image =
        [info objectForKey: UIImagePickerControllerOriginalImage];

        // ADD: dismiss the controller (NB dismiss from the *reader*!)
        [reader dismissModalViewControllerAnimated: YES];
    }
于 2013-04-29T10:26:05.670 に答える