@synthesize通常写在.m文件中的@implementation中。用来自动生成属性的geter/seter方法。
原理:
@synthesize 成员属性名称 会自动生成一个带下划线的成员变量,自动生成geter和seter方法,但是,seter和geter方法中只会给自动生成的代下划线的成员变量,不会给自身属性赋值。因此,写@synthesize的时候,后边写上:@synthesize people = _people;这样就会给属性赋值了。当自己写了geter和seter方法后,如果不声明@synthesize,直接使用下划线变量会报错。要么自己声明一个下划线变量,要么写上@synthesize。
@implementation Person
@synthesize name= _name;
@end