创建对象
1.分配内存空间,存储对象
2.初始化成员变量
3.反回对象的指针地址
1.对象在完成创建的同时,内部会自动创建一个引用计数器,这个计数器,是系统用来判断是否回收对象的唯一依据,当我们的引用计数retainCount = 0的时候,系统会毫不犹豫回收当前对象
2.[对象 release] reatinCount - 1
3.[对象 retain] reatinCount + 1 ,返回self
4.我们的引用计数retainCount = 0的 对象就被销毁了
5.dealloc函数,当一个对象要被销毁的时候,系统会自动调用dealloc函数,通知对象你将要被销毁
内存管理原则(配对原则):只要出现了 new,alloc,retain,就一定配对出现一个release,autorelease
int main(int argc, const char * argv[])
{
@autoreleasepool {
// 1
Person * p = [[Person alloc] init];
NSLog(@"%lu",p.retainCount);
// 2
[p retain];
NSLog(@"%lu",p.retainCount);
// 1
[p release];
NSLog(@"%lu",p.retainCount);
//0
[p release];
}
return 0;
}
|
|