1.在init函數中必須調用[super init],函數dealloc中必須調用[super dealloc]. 2.調用以「alloc」,"new","copy","mutableCopy"開頭函數的生成的對象,必須release 3.對象調用retain,必須release 4.對象能夠調用autorelease,延遲釋放. 5.每一個線程中至少有一個AutoreleasePool. 6.對於NSArray,NSDictionary等collection,調用release會自動清除(remove and release)全部包含的對象. 7.若是你不想污染當前AutoreleasePool,能夠這樣作 NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; //你的代碼 [pool release]; 8.避免循環引用(retain),如 A->B B->C C->A,若是沒法避免能夠爲對象添加其餘釋放函數(dispose)來破除循環.