混合ARC代码中的僵尸

时间:2012-02-29 09:03:16

标签: iphone objective-c memory-management automatic-ref-counting nszombie

我在启用ARC的应用中使用非ARC框架。现在,我在一行看起来像一个奇怪的EXC_BAD_ACCESS

return [super prepareURLRequest];  << Thread 1: Program received signal: "EXC_BAD_ACCESS".

首先,这是怎么回事,因为super不是可能已被解除分配的对象。 更新:虽然调试器卡在这一行,但事实证明问题在上述方法中更深一层。

当我在Zombie mode中运行该东西时,我得到以下“僵尸堆栈”:

Event Type    RefCt     Responsible Caller
Malloc            1     -[MyViewController loadData:]
Retain            2     -[MyDataManager initWithBaseURL:]
Release           1     -[MyDataManager initWithBaseURL:]
Release           0     -[MyViewController loadData:]
Zombie           -1     -[RKRequest prepareURLReuqest]

似乎网址存在问题,但在ARC中,我无法保留网址,因此无法分配网址。那么我怎么能解决这个问题。

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。问题是在MyDataManager方法完成后loadData:被解除分配。

所以我向myDataManager添加了MyViewController属性,问题就消失了。