详解iOS应用开发中的ARC内存管理方式

2020-01-14 19:51:38丽君

 


一个对象可以有多个拥有者,在上面代码中,name变量同样也是这个NSString对象的拥有者,也就是有两个指针指向同一个对象

 

详解iOS应用开发中的ARC内存管理方式

3.随后用户改变了输入框的内容,比如

详解iOS应用开发中的ARC内存管理方式

此时nameFeild的text属性就指向了新的NSString对象。但原来的NSString对象仍然还有一个所有者(name变量),因此会继续保留在内存中

详解iOS应用开发中的ARC内存管理方式

4.当name变量获得新值,或者不再存在时(如局部变量方法返回时、实例变量对象释放时),原先的NSString对象就不再拥有任何所有者,retain计数降为0,这时对象会被释放
如,给name变量赋予一个新值

 

复制代码
name = @"Jake"; 

 

 


 

详解iOS应用开发中的ARC内存管理方式

我们称name和nameField.text指针为"Strong指针",因为它们能够保持对象的生命。默认所有实例变量和局部变量都是Strong指针