2013-06-01 62 views
0

我以前从未与非ARC合作过,并且我尝试过ZXingObjC示例项目(QR码扫描器),它的非ARC项目为以及图书馆。 我开始删除autorealese,dealloc等。 但我遇到'保留',我不知道如何处理它。 我会为一只手感到高兴,因为它会让我们很多人受益。 '保留' 语句的将'ZXingObjC'(QR代码库)非ARC转换为ARC,有一些问题

例子:

if (zxd) { 
    input = 
     [ZXCaptureDeviceInput deviceInputWithDevice:zxd 
             ZXAV(error:nil)]; 
    [input retain]; 
    } 

另一个问题:

- (void)setCaptureDevice:(ZXCaptureDevice *)device { 
    if (device == capture_device) { 
    return; 
    } 

    if(capture_device) { 
    ZXQT({ 
     if ([capture_device isOpen]) { 
     [capture_device close]; 
     }}); 
    [capture_device release]; 
    } 

    capture_device = [device retain]; 
} 

编辑: 好了,我一直在努力使“编辑 - >重构 - > Convert to Objective-C ARC“,我得到: enter image description here

+1

您是否尝试过在Xcode中“编辑 - >重构 - >转换为ARC”? –

+0

我不知道有一个选项。我会尽力。 –

+0

好的,我编辑过,现在有什么想法? –

回答

0

好的,我做的是:

  1. 清理所有非ARC旧代码。
  2. “编辑 - >重构 - >转换为Objective-C ARC”。
  3. 新增失踪AudioToolbox.Framework

项目现在已与ARC合作。 我会稍后上传到github。

2

使用“ZXingOjbC”,而不将其转换为圆弧projcet另一种方法:当编译

我通过关闭弧使用该库的源代码,在结合两个圆弧和非圆弧代码时,它工作正常同一个项目。

使用以下步骤:

  1. 放“ZXingObjC”源文件夹到你的项目
  2. 去项目 - >构建阶段
  3. 选择所有ZXingObjc文件(可以按Shift选择一次性全部)然后按Enter键。
  4. “-fno-objc-arc”中的键告诉编译器在没有弧的情况下编译这些源代码。