У меня есть приложение, которое использует Zbar SDK У меня все работает и он отлично сканирует QR-коды. Однако, когда я пытаюсь сканировать штрих-коды UPC-A (продукты Grocery), он возвращается с совершенно другим номером, чем на штрих-код.ZBAR iPhone SDK вопрос.
Например: Я просматриваю 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];
}
Это странно, какое устройство вы читаете с? Возможно, вы захотите вытащить строку «setSymbology», когда вы настроите читателя (не уверен, что это будет иметь отрицательный эффект). По умолчанию UPCA включен. Кроме того, попробуйте запустить «symbol.typeName» в методе «didFinishPickingMedia ....», чтобы узнать, распознан ли тип кода. –
iPhone 4, EAN-13 по умолчанию я включил UPC-A, но он по-прежнему дает мне такой же странный результат. Я удалил setSymbology и NADA. Также я регистрирую файл symbol.type (см. Код), и я получаю UPC 12, который является UPC-A: (до того, как он возвращался EAN-13 – KDM