OC

实例变量与属性的区别

2020-09-08  本文已影响0人  Queen_BJ
@property关键字声明属性
@property (nonatomic, copy)NSString *userName;

.m文件中,编译器自动生成一个实例变量_userName以及setter和getter方法。在.m文件中可以直接的使用_userName实例变量,也可以通过属性self.userName都是一样的。

@synthesize

1、指定与属性对应的实例变量
例如@synthesize myButton = xxx,那么self.myButton其实是操作的实例变量xxx
在实际的项目中,我们一般这么写.m文件
2、@synthesize myButton;
这样写了之后,编译器会自动生成myButton的实例变量以及相应的getter和setter方法,注意:_myButton这个实例变量是不存在的,因为自动生成的实例变量为myButton而不是_myButton,所以现在@synthesize的作用就相当于指定实例变量
如果.m文件中写了@synthesize myButton;那么生成的实例变量就是myButton;如果没写@synthesize myButton;那么生成的实例变量就是_myButton

成员变量、实例变量、属性变量的联系
@interface MyViewController :UIViewControlle
{
      UIButton *yourButton;
      int count;
      id data;
}

@property (nonatomic, strong) UIButton *myButton;

@end

综上所述可知:成员变量是定义在{}号中的变量,如果变量的数据类型是一个类则称这个变量为实例变量。实例变量是成员变量的一种特殊情况

上一篇 下一篇

猜你喜欢

热点阅读