ios内存管理总结
1.在init函數(shù)中必須調(diào)用[super init],函數(shù)dealloc中必須調(diào)用[super dealloc].
2.調(diào)用以“alloc”,"new","copy","mutableCopy"開頭函數(shù)的生成的對(duì)象,必須release
3.對(duì)象調(diào)用retain,必須release
4.對(duì)象可以調(diào)用autorelease,延遲釋放.
5.每個(gè)線程中至少有一個(gè)AutoreleasePool.
6.對(duì)于NSArray,NSDictionary等collection,調(diào)用release會(huì)自動(dòng)清除(remove and release)所有包含的對(duì)象.
7.如果你不想污染當(dāng)前AutoreleasePool,可以這樣做
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
//你的代碼
[pool? release];
8.避免循環(huán)引用(retain),如?A->B B->C C->A,如果無法避免可以為對(duì)象添加其他釋放函數(shù)(dispose)來破除循環(huán).
轉(zhuǎn)載于:https://www.cnblogs.com/delonchen/archive/2011/07/17/2108741.html
總結(jié)
- 上一篇: 5年博龄只有十几篇文章,惭愧呀
- 下一篇: 微软一站式示例代码库 7月新代码示例发布