0
我有一个PhoneGap应用程序,它使用iOS中的ZBar扫描插件。它允许我多次使用扫描仪,但在几次尝试之后,下一次单击扫描按钮以调用插件会导致应用程序在30秒到5分钟之间冻结。然后它会再次恢复正常功能。iOS7 PhoneGap使用ZBar扫描仪后冻结
它只发生在安装iOS7的设备上。我已经测试过了。
我注意到xcode给了我一个“收到的内存警告”的输出消息。它可能会以某种方式相关。
任何想法?
我有一个PhoneGap应用程序,它使用iOS中的ZBar扫描插件。它允许我多次使用扫描仪,但在几次尝试之后,下一次单击扫描按钮以调用插件会导致应用程序在30秒到5分钟之间冻结。然后它会再次恢复正常功能。iOS7 PhoneGap使用ZBar扫描仪后冻结
它只发生在安装iOS7的设备上。我已经测试过了。
我注意到xcode给了我一个“收到的内存警告”的输出消息。它可能会以某种方式相关。
任何想法?
根据this问题,ZBarReaderViewController
的view
属性被保留,因此泄漏。
由于zbar和SDK文档here中所述,当您在初始化设置ZBarReaderViewController
读者的观点属性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];
}
非常感谢!我添加了[reader.view autorelease];行,它似乎工作正常。 –