Выпуск ZBAR iPhone SDK. - PullRequest
       7

Выпуск ZBAR iPhone SDK.

0 голосов
/ 13 января 2012

У меня есть приложение, использующее Zbar SDK. У меня все запущено и отлично сканирует QR-коды.Однако, когда я пытаюсь сканировать штрих-коды UPC-A (продукты бакалеи), он возвращается с совершенно другим номером, чем на штрих-коде.

Например: я сканирую 03800051156 и получаю в результате: 156749328

Как видите, совсем другое!

- (IBAction)scanButtonTapped
{
    // ADD: present a barcode reader that scans from the camera feed
    ZBarReaderViewController *reader = [ZBarReaderViewController new];
    reader.readerDelegate = self;

    ZBarImageScanner *scanner = reader.scanner;
    // TODO: (optional) additional reader configuration here

    // EXAMPLE: Set UPC-A
    [scanner setSymbology: ZBAR_UPCA
                   config: ZBAR_CFG_ENABLE
                       to: 1];

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

    //URL
    NSString *urlString = symbol.data;
    NSURL *url = [NSURL URLWithString:urlString];
    [scanWebView loadRequest:[NSURLRequest requestWithURL:url]];

    NSLog(@"Type UPC %d", symbol.type);

    NSLog(@"Reader UPC %d", urlString);
    AppDataObject* theDataObject = [self theAppDataObject];
    theDataObject.UPC = urlString;

    // EXAMPLE: do something useful with the barcode data
    resultText.text = symbol.data;
    // ADD: dismiss the controller (NB dismiss from the *reader*!)
    [reader dismissModalViewControllerAnimated: YES];

    // ADD Load the ProductInfo view after a slight delay to let the other VC resign. 
    [self performSelector:@selector(loadProduct) withObject:nil afterDelay:1.0];
}

1 Ответ

1 голос
/ 13 июня 2012

Вы регистрируете urlString как десятичное число, поэтому вы печатаете значение указателя urlString, а не значение фактической строки.

Попробуйте:

NSLog(@"Reader UPC %@", urlString);
...