OC是一门面向对象的语言
面向对象: 封装, 继承, 多态
能不能让编译器自动生成getter和setter方法的原型?
使用 @property帮我们生成getter和setter方法的声明
(1)形式1
//以名字name为例
-(void)setName:(NSString *)n;
-(NSString *)name;
(2)形式2
@property NSString * name;
能不能让编译器自动生成getter和setter方法的实现(早期版本)
使用 @synthesize 帮我们生成getter和setter方法的实现
(1)形式1
//以名字name为例
//name的设置方法
-(void)setName:(NSString *)n
{
NSLog(@”setName”);
name = n;
}
//name的获取方法
-(NSString *)name
{
//返回name是实例变量name
return name;
}
(2)形式2
@synthesize name;
实例变量设置为只读的
@property (readonly) NSString *sex;
指定getter方法和setter方法的方法名?
@property (getter = isShow,
setter = changeShow:) BOOL show;
不同类型的实例变量的property如何写
对于字符串和对象有特殊的处理
添加property
nonatomic 作用取消线程保护,提高代码执行速度
@property (nonatomic) int age;
copy 表示拷贝对象
@property (nonatomic,copy) NSString *name;
retin 表示持有对象
@property (nonatomic,retain) Eye *eye;