iOS中@property

二.@property

1.生成get与set方法的声明

2.生成get与set方法的简单实现

3.如果你没有声明对象成员变量,那么他会自动生成一个_开头的成员变量

 

@property参数分为4类:

1.与set方法内存管理相关参数

retain:要生成符合内存管理原则的set方法(应用与对象类型),引用计数会+1;

assign:直接赋值,(对象类型,基本数据类型而不是NS对象),引用计数不会+1;

copy:   建立一个索引计数为1的对象,然后释放旧对象;

 

简单的基本数据类型指的是:int,float,double,char,对象类型指的是NS开头的对象

 

copy与retain的区别:

copy其实是建立了一个相同的对象,而retain不是:

比如一个NSString 对象,地址为0×1111 ,内容为@”STR”

copy 到另外一个NSString 之后,地址为0×2222 ,内容相同,新的对象retain为1 ,旧有对象没有变化

retain 到另外一个NSString 之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1

也就是说,retain 是指针拷贝,copy 是内容拷贝。

 

2.多线程相关

nonatomic:不生成多线程线管代码

atomic:   生成多线程线管代码(不写默认的就是这个方式)

 

3.是否生成set与get方法

readwrite:可读可写属性

readonly:只读属性,只生成get方法,如果要修改属性,只能在init方法里赋值

 

4.set与get方法名称相关的参数

setter:设置生成的set方法名称

getter:设置生成的get方法名称

两者常用于BOOL类型的方法里。来修改原本的set,get方法。

 

@property(nonatomic,assign,setter:,getter:)int weight;

@property(nonatomic,retain,readonly)NSString name;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值