工程案例演示工程案例演示工程案例演示工程案例演示工程案例演示工程案例演示工程案例演示工程案例演示工程案例演示工程案例演示
工程案例演示
@property的参数分为三类,也就是说参数最多可以有三个,中间用逗号分隔,每类参数可以从上表三类参数中人选一个。如果不进行设置或者只设置其中一类参数,程序会使用三类中的各个默认参数,默认参数:(atomic,readwrite,assign)
一般情况下如果在多线程开发中一个属性可能会被两个及两个以上的线程同时访问,此时可以考虑atomic属性,否则建议使用nonatomic,不加锁,效率较高;readwirte方法会生成getter、setter两个方法,如果使用readonly则只生成getter方法;关于set方法处理需要特别说明,假设我们定义一个属性a,这里列出三种方式的生成代码:
-(void)setA:(int)a{
_a=a;
}
retain,通常用于非字符串对象
-(void)setA:(Car*)a{
if(_a!=a){
[_a release];
_a=[a retain];
}
}
copy,通常用于字符串对象
-(void)setA:(NSString*)a{
if(_a!=a){
[_a release];
_a=[a copy];
}
}
上一篇:第一篇
下一篇:最后一篇