我对 ZBar 扫描性能非常满意,但是如果这很重要的话,我在 ARC 下运行的项目上遇到了一个大问题。
也就是说,似乎存在严重的内存泄漏,并且随着 readerView 的每次新显示,该泄漏呈指数级上升。在大约 10 倍的内存使用量开始呈指数级上升之后,大约 20 倍的扫描程序变得无法使用。
我见过使用相同版本构建的示例,并且没有问题。我还在 readerView 上尝试了方法flushCache,但没有帮助。
有一个补丁:http://sourceforge.net/p/zbar/patches/36/ http://sourceforge.net/p/zbar/patches/36/,但我没有看到任何代码。由于我没有完整的源代码,我找不到它......
有人遇到过同样的问题吗?
我发现当前稳定版本的 ZBar 0.10 存在完全相同的问题,并通过子类化 ZBarReaderViewController 并重写 loadView 方法来修复它。我现在可以一遍又一遍地运行扫描仪,而不会导致内存疯狂。
这是完整的代码:
... 标头
#import <Foundation/Foundation.h>
#import "ZBarReaderViewController.h"
@interface CVZBarReaderViewController : ZBarReaderViewController
@end
..以及实施
#import "CVZBarReaderViewController.h"
@implementation CVZBarReaderViewController
- (void) loadView
{
self.view = [[[UIView alloc] initWithFrame: CGRectMake(0, 0, 320, 480)] autorelease];
}
@end
请记住将 .m 文件标记为非弧文件。转到项目设置/目标/构建阶段/编译源并使用 -fno-objc-arc 标记 CVZBarReaderViewController.m。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)