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)来破除循环.