美文网首页
self.和下划线的用法区别

self.和下划线的用法区别

作者: 弹一首键盘协奏曲 | 来源:发表于2016-06-29 20:19 被阅读173次

       在xcode中,变量有自己的set和get方法,需要程序员自己手动去写,但是还有一种变量的声明方式,我们可以使用@property声明一个属性,系统会帮我们自动生成set和get方法。

       同时我们使用中会发现当我们访问变量时候,会有self.xxx和_xxx两种访问方式,他们的有什么区别呢?下面列出我对着两种调用方式的理解;

      @property (retain, nonatomic) NSMutableArray *dataArray;

      self.dataArray是访问属性的,而_dataArray是访问实例变量的。属性就是实例变量加上set和get方法的一个正合体,他主要是承担一个外部访问的一个接口

      实例变量只能在本类中使用,外部变量不能访问!

      在类内部访问变量的时候用“-”,在类外部访问该变量时候用“.” 。

      注意事项:在手动内存管理(MRC)的时候使用“.”语法初始化变量的时候会产生内存泄露的问题,比如self.dataArray = [[NSMutaleArray alloc] init];时候self.dataArray相当于调用了set方法,一用计数会+1,在后面alloc时候引用计数会再次+1,这样在最后dealloc的时候,引用计数会为1,没有被释放,这样就造成了内存泄露。

      关于上述问题解决办法:在初始化的时候用“_”来调用,这样就不会产生内存泄露的问题了。在自动管理内存(ARC)中不会出现上述问题。

相关文章

  • OC 语法

    下划线和self.的区别 1.通过self. 访问,包含了set和get方法。通过下划线是获取自己的实例变量,不包...

  • self.和下划线的用法区别

    在xcode中,变量有自己的set和get方法,需要程序员自己手动去写,但是还有一种变量的声明方式,我们可以使用...

  • iOS 代码书写规范

    self.和下划线访问的区别 self.会使引用计数加一,而_xx不会使用引用计数加一的。所以使用self.xxx...

  • self.和下划线的区别

    self.var 通过访问方法的引用(包括set和get方法)_var 直接引用(不通过set和get方法) @...

  • 2018-04-28 iOS中self.和下划线的区别

    iOS中self.和下划线的区别 首先通过self.xxx 通过访问的方法的引用:包含了set和get方法。而通过...

  • iOS 中self.方法 与 _属性方法的区别

    iOS中self.和下划线的区别 首先通过self.xxx 通过访问的方法的引用:包含了set和get方法。而通过...

  • iOS中self.和下划线的区别

    iOS中self.和下划线的区别 首先通过self.xxx 通过访问的方法的引用:包含了set和get方法。而通过...

  • OC中下划线和self.的区别

    1.通过self. 访问,包含了set和get方法。通过下划线是获取自己的实例变量,不包含set和get的方法。 ...

  • iOS中_(下划线)和self.的区别

    1.首先通过self. 通过访问的方法的引用:包含了set和get方法。但是,通过下划线是获取自己的实例变量,不包...

  • iOS中self.和下划线的区别

    1.首先通过self.xxx 通过访问的方法的引用:包含了set和get方法。而通过下划线是获取自己的实例变量...

网友评论

      本文标题:self.和下划线的用法区别

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