1.和Android一样,Objective-C中也有自动回收对象的机制ARC,当一个对象没有任何指针指向时,对象就会被释放
2.默认的对象指针都是强引用的,假设现在有两个对象,A和B互相引用,那么着两个对象都没有办法通过ARC机制来释放
3.可以通过弱引用来解决上面遇到的问题,下面的代码中,如果现在有A,B这两个对象,当代码执行完毕时,A中的B对象由于是弱引用,所以B可以被自动释放,B被释放后,A对象也没有其他对象引用了,也被释放了
@interface classA:NSObject @porperty (nonatomic,weak) classB * objB; __weak classB * objB; -(void)test; @end @interface classB:NSObject @porperty (nonatomic,strong) classA * objA; -(void)test; @end ClassA * A=[...] ClassB * B=[...] A.objB=B; B.objA=A;
4.当一个弱引用对象被释放后,该对象会被自动置为nil
原文:https://www.cnblogs.com/Potato-Eater/p/9581963.html