黑马程序员技术交流社区

标题: 手动内存管理基本概念 [打印本页]

作者: 飞奔的小鱼    时间: 2015-11-7 13:34
标题: 手动内存管理基本概念
创建对象
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;
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2