OC学习 Property

 属性是OC2.0 之后出现的语法 帮我们生产setter 和 getter 方法的声明
//@property NSString *name;
//@property 关键字
//NSString * 属性类型(和对应的实例变量类型一致)
//name 属性名(决定了 setter getter方法名)
//帮我们生成 name的setter (setName:) 和 getter (name)的方法的声明

@synthesize name = _sex , sex = _name , age = _age , phoneNumber = _phoneNumber;
@synthesize name,sex,age,phoneNumber;
@synthesize 帮我们实现对应的setter 和 getter
@synthesize name = _name;
@synthesize 关键字
name = _name  name是属性名  -name是实例变量

 1:实现了setter(setName:)和getter(name) 方法
 2:告知 在setter(setName:)和 getter(name)方法操作的实例变量是_name
当@synthesize 生成的setter和getter方法 操作实例变量时候 会进行一个检测, 如果实例变量存在 进行赋值取值 ,如果实例变量不存在 则会自动帮我们生成私有的实例变量("_" + 属性名  例如name属性 自动生成的实例变量为_name)
 如果@synthesize 省略不写  系统会为我们做这一切  也就是说 我们只用声明属性.

原文地址:https://www.cnblogs.com/fzkwan5438020/p/5067359.html