美文网首页
iOS-工作两年后,再看引用计数

iOS-工作两年后,再看引用计数

作者: coder_那一抹刚吹过的风 | 来源:发表于2018-04-02 17:26 被阅读12次

因为刚接触iOS那会儿,iOS开发已经进入到ARC的模式,所以直接过渡到了ARC编程模式。今天跟同事讨论问题,发现自己有些许理解有很大问题。不多BB,看代码。

@interface People()
@property (nonatomic, retain) NSArray *arr;
@end
@implementation People
- (instancetype)init {
    self = [super init];
    if (self) {
        self.arr = @[@"hello world"];
        NSLog(@"%ld", [self.arr retainCount]);
    }  
    return self;
}
@end

还是上面的代码,我们修改少许,改变self成立内部的代码为下面的代码
1

        _arr = @[@"hello world"];
        NSLog(@"%ld", [_arr retainCount]);

2

        _arr = @[@"hello world"];
        NSLog(@"%ld", [_arr retainCount]);

3

        self.arr = @[@"hello world"];
        NSLog(@"%ld", [_arr retainCount]);

公布一下上面的答案,2,1,1,2.
上面的答案开始我是很不能理解了。还是里一位大佬(不语)的耐心讲解,解开了心中的诸多疑惑。

在这里说明一下,如果你对@property还有疑问,我翻看我早先写的一篇文章,这里有关于Property的相关说明。来,咱们看源码,我跟大家分析一波。
首先,着重强调:

对象调动alloc方法,会自动让自己的引用计数+1

成员变量赋值不会影响对象的引用计数

其实这里我们主要给出@property生成的setter方法,大家应该就会有中豁然开朗的感觉。

- (void)setArr: (NSArray *)arr {
     if(_arr != arr) {
             [_arr release];
             _arr = [arr retain];
      }
}

相关文章

  • iOS-工作两年后,再看引用计数

    因为刚接触iOS那会儿,iOS开发已经进入到ARC的模式,所以直接过渡到了ARC编程模式。今天跟同事讨论问题,发现...

  • Effective Objective-C 2.0 总结(五)

    内存管理 第 29 条:理解引用计数 引用计数工作原理 Objective-C 语言使用引用计数来管理内存,每个对...

  • iOS知识点

    1、引用计数是什么? 引用计数实际上是对内存地址的持有者的一个计数。 2、引用计数的工作原理是什么? ...

  • 引用计数

    自动引用计数 Swift 使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存 自动引用计数的工作机制 每...

  • Swift语法(五)

    一.自动引用计数 1.自动引用计数工作机制 1.1 swift和oc一样,采用自动引用计数来管理内存 1.2 当有...

  • 第五章 内存管理(EffectiveObjective-C)

    1 理解引用计数 每个对象有个可增可将的计数器,ARC实际上也是一种引用计数机制, 引用计数工作原理OC对象有个"...

  • 编写高质量代码的52个有效方法(五)—内存管理

    29.理解引用计数 引用计数工作原理:在引用计数架构下,对象有个计数器,用以表示当前有多少个事物想令此对象继续存活...

  • swift重温笔记(自动引用计数)

    自动引用计数的工作机制 自动引用计数实践 类实例之间的循环强引用 解决实例之间的循环强引用 闭包引起的循环强引用 ...

  • iOS内存管理探底

    一、引用计数(保留计数) iOS的内存管理主要是依赖引用计数,so,我们扯扯这个的工作原理: 二、属性修饰方法as...

  • iOS内存管理初探 – 引用计数、AutoRelease与ARC

    引用计数式内存管理 引用计数 iOS通过引用计数管理对象的生命周期,每个对象有其引用计数。 对象被强引用时引用计数...

网友评论

      本文标题:iOS-工作两年后,再看引用计数

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