ARC的原理:只要还有一个变量指向对象,对象就会保持在内存中。当指针指向新值,或者指针不再存在时,相关联的对象就会自动释放。
strong表示强引用,默认所有实例变量和局部变量都是strong,一般情况下都会选择strong关键字,这个关键字表示只要有对这个对象的引用(强引用),这个对象就不会销毁,换句话说,只有所有对这个对象的引用(强引用)都去除时,这个对象才会被释放。
weak表示弱引用,weak仍然可以指向一个对象,但不属于对象的拥有者。因为这样不会增加对对象的引用,当一个对象所有的强引用都去除时,即使有弱引用,这个对象也会被释放,也就自动指向nil(空指针)。
网友评论