美文网首页
iOS成员变量定义的两种方式和区别

iOS成员变量定义的两种方式和区别

作者: 三千烦恼风_eefa | 来源:发表于2023-03-26 14:48 被阅读0次

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

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

方法二:
 @implementation UserInfo {
    NSString* userName;
}

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

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

方法二就是一个变量值的直接修改。

注意:
直接访问变量存取效率会高一些;
如果要使用kvo属性必须要使用.赋值,因为kvo实际是拦截了set方法;

相关文章

网友评论

      本文标题:iOS成员变量定义的两种方式和区别

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