A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飞奔的小鱼 中级黑马   /  2015-11-7 13:34  /  722 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建对象
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;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马