iOS内存管理

2018-08-10  本文已影响66人  makemake

内存五大区:

strong:表示拥有对象,修饰的对象引用计数+1,只要引用计数不为0就不会被销毁。(强制置为nil还是被销毁的)
weak:表示指针指向该对象但不拥有,修饰的对象引用计数不会增加。
assign:修饰基本的数据类型,这些值存在于栈中。
weak和assign:weak修饰对象,assign修饰基本类型。若是assign修饰对象会造成对象释放后指针地址还存在造成野指针,在堆中会早成程序崩溃,在栈中的内存系统会自动处理。
copy和strong:strong本质上是将指针指向同一份内存地址。copy实际上是在内存中拷贝一份对象,指针指向不同的地址

block的存储形态有三种:
_NSConcretStackBlock(栈)、_NSConcretGlobalBlock(全局)、_NSConcretMallocBlock(堆)

上一篇 下一篇

猜你喜欢

热点阅读