【力学】self关键字

self总是指向调用该方法的对象。

self总是代表当前类的对象,当self出现在某个方法体中时,它代表的对象是不确定的,但是类型是确定的,它所代表的对象就是当前类的实例;当这个方法被调用时,它所代表的对象就确定下来了:谁在调用这个方法,self就代表谁。

self.xxx 和_xxx的区别

_xxx是对属性的直接引用,不通过setter和getter方法。
self.xxx是通过访问方法的引用(包含setter和getter方法)。

所有使用self.xxx是更好的选择,因为这样可以兼容懒加载,同时也避免了使用下滑线的时候忽略了self这个指针,后者容易在BLock中造成循环引用。同时,使用ios 属性 _是获取不到父类的属性,因为它只是对局部变量的访问。

因此,self方法实际上是用了get和set方法间接调用,ios 属性下划线方法是直接对变量操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,845评论 0 9
  • 文:尹兆奎 1 每个人从出生到离去都面临着不公平,就有一样东西,对大家都很公平,那就是组成人生命的...
    阿尹说说阅读 2,383评论 0 1
  • 我是个女孩子,文静,内向。 但我总觉得这个世界其实对文静内向的女孩没有那么多的宽容度的。譬如,因为你文静,很多人会...
    拯救世界的小水果阅读 3,610评论 0 1
  • 今晚看了一篇有關出國留學的文章。 說真的,每每看到身邊的人出國或是有出國的打算,心裡都是無比的羨慕。羨慕什麼,大概...
    yovand阅读 1,085评论 0 0
  • 前言:最近一段时间都在做项目,写博客很少,这几天会把项目中遇到的一些小知识点总结分享给大家. 先看一下图,苹果自带...
    Andyzhao阅读 7,611评论 4 24