首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zbar IOS屏幕冻结

zbar IOS屏幕冻结
EN

Stack Overflow用户
提问于 2013-11-26 17:34:40
回答 1查看 567关注 0票数 1

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

代码语言:javascript
复制
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];

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

代码语言:javascript
复制
- (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的中央处理器和内存的问题,但不知道如何在我的情况下纠正它。请给出您宝贵的意见。

EN

回答 1

Stack Overflow用户

发布于 2013-11-27 08:54:52

好的,首先,请忽略我关于ZBarReaderView子类化的评论。就在一段时间之前,我遇到了一些问题,尽管我记得我曾尝试过,但这并不是我满意的解决方案。我有几个建议给你。

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

代码语言:javascript
复制
[self presentViewController:reader animated:YES completion:nil];
reader = nil;

您所呈现的视图控制器将持有阅读器,因此不要担心丢失引用。我认为这实际上有助于提高记忆力。(而且,当你遇到一个问题,事情一开始可以工作,然后多次执行后就失败了,这通常是一个内存问题。)

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

代码语言:javascript
复制
// 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的建议。这可能会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20213178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档