在支持iOS 4.3之前,我已经使用过ARC并构建了应用程序,但是当我开始使用weak时,因为树对节点的引用很强,而节点对树的引用又很强,因此应该是一个弱引用。 :

@property (weak, nonatomic) NSTree *treeThatIBelong;


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

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

最佳答案

解决方法是,如果您需要部署到iOS 4.3或更早版本,请不要使用weakweak需要运行时支持,直到iOS 5.0才提供。

对于iOS 4.3及更早版本,您可以使用assign,它当然不是归零弱引用,因此在释放所引用的对象时只会变成垃圾。使用MRR而不是ARC时,这正是您已经要处理的。

10-08 05:44
查看更多