前言:
虽然在arc时候已经很少需要考虑内存管理,不过感觉内存管理还是需要有所
了解的,这几天又把内存管理复习了下。
1.自己生成的对象,自己持有(alloc/new/copy/mutableCopy)
2.非自己生成的对象,自己也能持有(retain)
3.不再需要自己持有的对象时释放
4.无法释放非自己持有的对象(已经释放的对象不可以再释放,会奔溃)
二,retain/release/dealloc
1.苹果通过散列表(引用计数表)来管理引用计数
2.GNUstep将引用计数保存在对象占用内存块头部的变量中
3.autorelease可以理解为c语言中的局部变量,超过范围(autoreleasePool)后失效