在ARC项目中使用非ARC(或者在非ARC项目中使用ARC)框架或者类库一起工作

    从iOS5 以来,引入了Automatic Reference Count(ARC)自动引用计数,就是obj-c对象每被“使用”一次,引用计数就会+1,当引用计数为0时,系统就会回收内存。这些都是由编译器自己完成的。而非ARC在OC程序中就是:自己alloc的要release,retain/copy的相应的也要release,这是传说中的非ARC。

    在使用第三方类库的时候,有时候第三方类库的内存管理机制跟自己的不一样,但是还是想使用,该怎么办呢?

    具体方法如下:

1.选择项目中的Targets,选中你所要操作的Target,


2.选Build Phases,在其中Complie Sources中选择需要ARC的文件双击,并在输入框中输入:-fobjc-arc,如果不要ARC则输入:-fno-objc-arc


    也就是说,如果你的工程是非ARC的,而使用的第三方类库中使用的是ARC,只需要将使用ARC的第三方类库的文件后面加上:-fobjc-arc,反之则加上:-fno-objc-arc

    如图所示,我在非ARC的工程中使用了一个ARC的类库,设置方法如图所示:

wKiom1POXHWijX8RAAZEUjq8rfc676.jpg

你可能感兴趣的:(ARC和非ARC同时使用,ARC和非ARC,使用非ARC,使用ARC)