0

在我转换为 ARC 之前,以下代码一直有效。它现在失败了,因为 vcObj 在该行执行后包含一个 nil。

[[self vcPhoto] setVcObj: [NSClassFromString( [[self vcPhoto] vcClassName] ) new]];

我已经尝试过,如果我像这样更改代码,它会再次工作,并且对象 x 按预期分配给 vcObj:

id x = [NSClassFromString( [[self vcPhoto] vcClassName] ) new]];
[[self vcPhoto] setVcObj: x];

在我看来,该类生成自:

[NSClassFromString( [[self vcPhoto] vcClassName] ) new] 

在分配给 vcObj 之前立即蒸发。

我已经阅读了“过渡到 ARC 发行说明”,尤其是关于变量限定符的部分,但我看不到如何标记中间体,因此它会一直存在,直到它被消耗掉。

4

1 回答 1

0

属性是否vcObj定义为weakassign?应该是strong为了保留传递的值。

于 2013-10-29T20:27:11.017 回答