@property与@synthesize的区别

上一篇文章我有讲到self.与_的区别,往往和这个问题相伴随的是我困惑的问题是"@property与@synthesize的区别"


@property的用法

@interface ViewController ()

{

    NSArray *arr2;

}

@property(nonatomic,retain)NSArray *arr;

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

}

- (void)setArr:(NSArray *)arr{

}

- (void)setArr2:(NSArray *)arr{

}

@end

如上所示的一段代码,有俩个变量arr2与arr

如果你是认真敲过相似的代码,你可以在敲代码的过程中就发现,arr的set方法似乎已经存在,而arr2的set方法需要完全手动敲定,而且需要调用才能执行。

所以@property的主要作用就是生成存取方法,及set和get方法

@sythesize的用法

承接上面的代码,我们可以在执行代码的最前面添加

@synthesize arr = _arr;这样当我们不需要执行存取方法的时候,及_arr就可以获取arr的值,

@sythesize的作用的是更改属性名称

如果我们使用

@synthesize arr = ssarr;

那么在执行文件arr就会叫做ssarr。通过ssarr就可以获取arr的值,听起来比较绕口,敲敲代码就知道什么意思了


你可能感兴趣的:(@property与@synthesize的区别)