似乎iOS应用程序可以使用ARC并支持iOS 4.3或4.x,但如果它使用的是弱的"参考?

时间:2012-09-06 07:24:43

标签: ios automatic-ref-counting weak-references

在支持iOS 4.3之前我使用过ARC并构建了应用程序,但是一旦我开始使用weak,因为Tree对节点有强引用,而节点有对树的引用,应该是一个弱参考:

@property (weak, nonatomic) NSTree *treeThatIBelong;

NSTree是我在自己的代码中创建的类。)

在这种情况下,无法使用iOS 4.3的目标,因为编译器错误“弱...在部署目标中不受支持”,并且只有在iOS 5.0或更高版本时错误才会消失。因此,如果我们有weak,我们无法部署到iOS 4.3?如果我们想支持iOS 4.3并仍使用ARC,是否有解决方法?

1 个答案:

答案 0 :(得分:1)

如果需要部署到iOS 4.3或更早版本,解决方法是不使用weakweak需要在iOS 5.0之前不存在的运行时支持。

对于iOS 4.3及更早版本,您可以使用assign,这当然不是归零的弱引用,因此在引用的对象被释放时变成垃圾。当使用MRR而不是ARC时,这正是您必须处理的问题。