属性不是变量,不能混淆
一.属性的声明:
使用@property声明属性
例如:
@property NSString *name;
相当于@interface中声明了两个方法:
- (void)setName:(NSString *)name;
- (NSString *)name;
二.属性的实现
使用@synthesize实现属性
例如:
@synthesize name = _name;
相当于在@implementation实现了
- (void)setName:(NSString *)name;
- (NSString *)name;
// 等号左边是属性 等号右边是实例变量
// 可以把相同类型的属性放在一行 , 写在一起进行 声明 和 实现 , 但是通常分开写 ( 最好不要写在一起 , 可读性差 )
// 这里面的属性的实现可以省略不写 ( 系统默认生成 ) // 也可以只写在等号的左边部分
// 实例变量也可以不写 因为后面 @synthesize 省略之后自动生成了实例变量 ( 生成的是私有的 @private) 声明几个属性 自动生成几个实例变量
所以提供属性就是为了简化程序员的编码