口诀:
1.谁创建,谁释放。通过new或者clone创建的对象,必须调用release或者autorelease。
2.new,clone以外的方法创建的对象都被声明了autorelease。
3.谁retain,谁release。无论这个对象是如何生成的,只要调用了retain就要调用release。
范式:
1.创建一个autorelease对象:
auto obj=new myclass();
obj->autorelease;
2.release一个对象后,立即清空指针:
auto obj=new my class();
obj->release();
obj=nullptr;
3.指针赋值给另一个指针
auto obj1=new myclass();
auto obj2=obj1 ;
obj2->retain();
//obj2 do something...
obj2->release();
obj2=nullptr;
4.在一个函数中创建并返回对象,需要把这个函数设置为autorelease:
myclass* getinstance(){
my class *instance=new myclass();
instance->autorelease();
return instance;
}