zoukankan      html  css  js  c++  java
  • OC 直接使用使用实例变量和通过属性来访问实例变量的区别

    1、直接使用实例变量(_varName)比通过点语法(self.varName)有更快的访问速度

    2、直接访问实例变量,不会调用设置方法,绕过了相关属性所定义的内存管理语义

    3、直接访问实例变量,不会触发【键值观察】(Key-Vaule Observinig,KVO)通知。

    4、通过属性来访问有助于拍照与之相关的错误。因为可以在setter,getter方法中新增断点,监控该属性的调用者及其访问时机。

    具体选择还是要具体确定。不过这还关系到团队编码风格的规定。例如为了编码统一,都使用通过属性访问实例变量。

    几个注意点:

    1、既要优化,又要监控变量的变化。在写入实例变量时,通过setter方法来做,在读取实例变量时,直接使用(_varName)

    2、在初始化方法中若要必须设置实例变量的值,应该直接访问实例变量。因为子类可能覆写初始化方法。

    3、使用“惰性初始化”(懒加载,lazy initialization),必须通过“getter”方法来访问属性,否则实例变量永远不会被初始化。

  • 相关阅读:
    冲刺2 05
    冲刺02 04
    人月神话阅读笔记01
    进度条
    团队冲刺第十天
    团队冲刺第九天
    学习进度条13
    团队冲刺第八天
    怎样买书更便宜
    冲刺第七天
  • 原文地址:https://www.cnblogs.com/wjw-blog/p/13187136.html
Copyright © 2011-2022 走看看