gpt4 book ai didi

ios - 在 ios 中使用 ZBarReaderViewController 导致条形码不一致

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:47 25 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,我必须在其中扫描条形码。我使用 ZBarReaderViewController 扫描条形码。有时它会准确地给出结果,但有时它会给出像这样的未知值 &7&#,Ac9 。我的图片是 enter image description here我的代码是

 -(IBAction)scanBarCode:(id)sender
{
reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
reader.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height * [UIScreen mainScreen].scale >= 1136)
[reader.readerView setScanCrop:(CGRect){ { 0.25, 0.08 }, { 0.07, 0.84} }];//.25
else
[reader.readerView setScanCrop:(CGRect){ { 0.23, 0.08 }, { 0.09, 0.84} }];

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

//swetha test
[scanner setSymbology: 0
config: ZBAR_CFG_ENABLE
to: 0];
// Enable EAN 13
[scanner setSymbology: ZBAR_EAN13
config: ZBAR_CFG_ENABLE
to: 1];
// Enable UPC-A
[scanner setSymbology: ZBAR_UPCA
config: ZBAR_CFG_ENABLE
to: 1];
// Enable Code 128
[scanner setSymbology: ZBAR_CODE128
config: ZBAR_CFG_ENABLE
to: 1];
[self presentViewController:reader animated:YES completion:nil];
[reader release];

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
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
serialnumber.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*!)
barcodeClicked = 0;

[picker dismissViewControllerAnimated:YES completion:nil];
}

如果我不清楚,请告诉我。提前致谢。

最佳答案

我的imagepickerControll函数如下:

- (void) imagePickerController: (UIImagePickerController*)reader didFinishPickingMediaWithInfo: (NSDictionary*) info {
@try {
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
for(id obj in results) {
ZBarSymbol *symbol = obj;
serialnumber.text = [symbol data];
}
}
@catch (NSException *ex) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"%@",ex]
delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
barcodeClicked = 0;
[reader dismissViewControllerAnimated:YES completion:nil];
}

我强烈建议使用 try-catch 并检查所有结果,因为如果它们靠近,它可能会解释 2 个不同的条形码,并将对象解析为 ZBarSymbol。

关于ios - 在 ios 中使用 ZBarReaderViewController 导致条形码不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com