【问题标题】:zbar IOS screen freezeszbar IOS屏幕冻结
【发布时间】:2013-11-26 09:34:40
【问题描述】:

我正在将 zbar 集成到我的 iphone 应用程序中,下面是用于扫描条形码的代码。

ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;

ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];

[self presentModalViewController: reader
                            animated: YES];

完成后,我将执行以下操作。

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    id<NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)

        break;
    // Do what ever u want
    [reader dismissModalViewControllerAnimated: YES];
}

这个问题是,我在第一个实例中使用 IOS7 并且它的扫描完美,但是,对于第二个实例,在它扫描后,它不会继续进行,即使取消按钮也不起作用并且屏幕仍然在相机中模式。我读到它与 IOS7 的 cpu 和内存有关,但无法弄清楚在我的情况下如何纠正它。请提供您宝贵的意见。

【问题讨论】:

  • 我遇到了同样的问题,最终为 ZBarReaderView 编写了自己的控制器。至少要获得基本功能,这并不难。您可能想尝试一下。 (我现在正在工作,但我已经给自己发了一封电子邮件,以便在我回家后找到我的代码。如果你认为这会有所帮助,我会尽可能地发布它。)
  • 非常感谢您的朋友,期待您的 hrlp!请发帖,这样它就会像我一样帮助很多人!!

标签: iphone ios7 barcode-scanner zbar


【解决方案1】:

好的,首先,请忽略我关于子类化 ZBarReaderView 的评论。不久前我遇到了问题,尽管我记得尝试过,但这不是我解决的解决方案。我有几个建议给你。

presentViewController:animated: 之后的顶部代码位中,尝试将指向reader 的指针设置为零。我执行以下操作:

[self presentViewController:reader animated:YES completion:nil];
reader = nil;

您所展示的视图控制器将保持在阅读器上,因此不必担心丢失参考。我认为这实际上有助于记忆。 (而且,当您遇到一个问题,即事情一开始可以工作,然后在多次执行后失败,这通常是内存问题。)

除此之外,在顶部,我关闭所有符号,然后只启用我感兴趣的符号。例如,我可能会这样做:

// Enable only ISBN-13 & ISBN-10 barcodes
[scanner setSymbology:0 config:ZBAR_CFG_ENABLE to:0];
[scanner setSymbology:ZBAR_EAN13 config:ZBAR_CFG_ENABLE to:1];
[scanner setSymbology:ZBAR_ISBN10 config:ZBAR_CFG_ENABLE to:1];

试试这两个建议,尤其是第一个关于将引用设置为 nil 的建议。这可能会有所帮助。

【讨论】:

  • 您好马里奥,感谢您的详细回复。尝试了上面给出的两个建议。但是,我仍然有同样的问题,这是我的发现。我第一次扫描时,绿色矩形条出现,捕获 isbn 并出来。第二次扫描,绿色条出现,立即消失,屏幕挂起。也不能改变方向。当我尝试删除该应用程序时,它会返回到该冻结屏幕。您能否建议完成工作后如何关闭扫描仪并提供帮助
  • 这有点难以弄清楚,因为我认为您发布的代码没有问题。所以,我有两件事要给你。首先,您是否尝试过构建最简单的玩具应用程序,以您想要的方式使用扫描仪?无论您的简单应用程序是否重现了问题,这样做应该更容易隔离问题。 (我猜问题出在您尚未发布的代码中。)如果您在一个非常简单的应用程序中重现该问题,您可以将整个内容发布到 Github 或其他地方,让其他人看看。二、你用的是什么版本的ZBar SDK?
猜你喜欢
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多