美文网首页
12.Objective-C之集合对象的内存管理

12.Objective-C之集合对象的内存管理

作者: 峰子1994 | 来源:发表于2017-10-28 17:59 被阅读3次

    1.前言

    1.【掌握】集合对象的内存管理
    2.【理解】集合对象内存管理总结
    

    1.集合对象的内存管理

    1.当一个对象加入到集合中,那么该对象的引用计数会+1
    2.当集合被销毁的时候,集合会向集合中的元素发送release消息
     NSMutableArray *arr = [[NSMutableArray alloc] init];
    
        Person *p = [[Person alloc] init];
        NSLog(@"retainCount = %lu", [p retainCount]);
        [arr addObject:p];
        NSLog(@"retainCount = %lu", [p retainCount]);
        [p release];
        NSLog(@"retainCount = %lu", [p retainCount]);
        [arr release];
    

    2.集合对象内存管理总结:

    1.官方内存管理原则
    
    1> 当调用alloc、new、copy(mutableCopy)方法产生一个新对象的时候,就必须在最后调用一次release或者autorelease
    2> 当调用retain方法让对象的计数器+1,就必须在最后调用一次release或者autorelease
    2.集合的内存管理细节
    
    1> 当把一个对象添加到集合中时,这个对象会做了一次retain操作,计数器会+1
    2> 当一个集合被销毁时,会对集合里面的所有对象做一次release操作,计数器会-1
    3> 当一个对象从集合中移除时,这个对象会一次release操作,计数器会-1
    3.普遍规律
    
    1> 如果方法名是add\insert开头,那么被添加的对象,计数器会+1
    2> 如果方法名是remove\delete开头,那么被移除的对象,计数器-1
    

    相关文章

      网友评论

          本文标题:12.Objective-C之集合对象的内存管理

          本文链接:https://www.haomeiwen.com/subject/capspxtx.html