成员对象的常用属性

以下为本人自我理解

属性说明
assign(默认类型)生产一个简单的setter的方法
copy将对象复制到实例变量
Nonatomic与程序的多线程开发有关,一般设置成关闭
readonly指明类中的成员变量是只读的,不能执行写入操作
readwirte(默认类型)类中的成员变量可读写
retain在setter的时候该调用retain,增加该变量的引用计数器

定义一个对象

 在h文件中声明:

@property (nonatomic,retain)NSString *City;///结果


 在m文件中合成生成器:

@synthesizeCity =_City;


iOS 5 中对属性的设置新增了strong 和weak关键字来修饰属性

strong 用来修饰强引用的属性;

@property (strong) SomeClass * Object; 
相当于原来的 
@property (retain) SomeClass * Object; 和 @property (copy) SomeClass * Object; 

weak 用来修饰弱引用的属性;
@property (weak) SomeClass * Object; 
相当于原来的 
@property (assign) SomeClass * Object; 


强引用和弱引用的区别是对象是否被释放,在没用强引用指向它的时候。即使有弱引用指向它,如果最后一个强引用没了,对象还是会被释放,并且所有存在的弱引用会被置零。
我们在使用代理的时候是弱引用

总结:
我们对于BOOL、数字类型以及id等编译器生成的setter的方法默认是赋值的。
对于NSString,NSArray,UIViewContriller等对象类型则需要retain或者copy。
编译器默认生成setter和getter,方法是线程安全的,大多数iphone程序并不使用多线程,大部分在UIKit里面循环进行的,
所以许多属性可以设置成非线程安全的修饰词nonatomic,即非原子变量,这样线程是非线程安全的,但是能得到更好的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值