2014-01-17 32 views
0

我有一个PhoneGap应用程序,它使用iOS中的ZBar扫描插件。它允许我多次使用扫描仪,但在几次尝试之后,下一次单击扫描按钮以调用插件会导致应用程序在30秒到5分钟之间冻结。然后它会再次恢复正常功能。iOS7 PhoneGap使用ZBar扫描仪后冻结

它只发生在安装iOS7的设备上。我已经测试过了。

我注意到xcode给了我一个“收到的内存警告”的输出消息。它可能会以某种方式相关。

任何想法?

回答

1

根据this问题,ZBarReaderViewControllerview属性被保留,因此泄漏。

由于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]; 
} 
+0

非常感谢!我添加了[reader.view autorelease];行,它似乎工作正常。 –