IOS中成员变量的定义

IOS中定义成员变量有两种方法,一种是将变量声明为property,一种是直接声明为一个变量。

方法一:
 @property (strong,nonatomic) NSString* testString;

方法二:
 @implementation TestCell
{
​    NSString* _testString;
}

使用方法一的时候系统会为我们自动生成一个Get函数和一个Set函数(隐式的),可以显示的在对应的类中声明这两个函数,Get一般用来懒加载使用,Set一般实现这个属性变化的时候需要影响的变化。其中使用self.testString会调用相应的get和set方法,_testString只会直接修改属性本身。

需要注意的是:self.testString = xxx,会调用它的set方法,所以不能在他的set方法中调用这个函数,会死循环;set中需要手动调用_testString来修改这个属性的值。

方法二就是一个变量值的直接修改,没什么好说的。

额外两个需要注意的地方:

能不使用.赋值就不使用,直接访问变量存取效率会高一些,没必要去调用它的set和get方法

如果要使用kvo属性必须要使用.赋值,因为kvo实际是拦截了set方法

你可能感兴趣的:(IOS中成员变量的定义)