我有一个在 iOS 中使用 ZBar 扫描插件的 PhoneGap 应用程序。它允许我使用扫描仪几次,但在尝试几次后,下一次单击扫描按钮以调用插件会导致应用程序卡住 30 秒到 5 分钟之间的任何时间。然后它将再次恢复正常功能。
它只发生在安装了 iOS7 的设备上。我已经测试过了。
我注意到 xcode 给我一条输出消息“Received memory warning”。它可能以某种方式相关。
有什么想法吗?
最佳答案
根据 this问题,ZBarReaderViewController
的 view
属性被保留,因此会泄漏。
如 ZBar SDK 文档中所述 here ,当您初始化 ZBarReaderViewController
时,将阅读器的 View 属性设置为 autorelease
:
- (IBAction) scanButtonTapped
{
// ADD: present a barcode reader that scans from the camera feed
ZBarReaderViewController *reader = [ZBarReaderViewController new];
// Fixes memory leak for the view property.
[reader.view autorelease];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
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];
// present and release the controller
[self presentModalViewController: reader
animated: YES];
[reader release];
}
关于iOS7 PhoneGap 使用 ZBar 扫描仪后卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189454/