第7条:在对象内部尽量直接访问实例变量

直接访问(实例变量),间接访问(属性)。

在对象外部

   总是使用属性来访问。

在对象内部

   除了几种特殊情况外,强烈建议在读取实例变量时采用直接访问形式。而在设置实例变量时通过属性来做。

初始化方法dealloc方法中,总是使用直接通过实例变量来读写数据。

  例:以下会抛出异常

      -(void)setLastName:(NSString*)lastName{

         self.lastName = lastName;

      }

在"惰性初始化"情况下,必须通过“获取方法”来访问属性,否则,实例变量永远不会初始化。

  例: 以下是错误演示

    -(Brain*)brain {

       if(!_brain) {

         _brain = [Brain new];

       }

       return _brain;

    }

原文地址:https://www.cnblogs.com/Pikdays/p/4117857.html