iOS property 参数

本文详细介绍了Objective-C中@property的使用方法,包括不同属性参数的意义、何时使用retain及assign、多线程管理等内容,并提供了布尔类型的属性声明示例。

@property参数

1. set方法处理

参数列表

参数

说明

原子性

atomic

对属性加锁,多线程下安全,默认值

nonatomic

对属性不加锁,多线程下不安全,但速度更快

读写属性

redwrite

生产gettersetter方法,默认值

readonly

只生产getter方法

set方法处理

assign

直接赋值,默认值

retain

release原来的值,再retain新的值

copy

release原来的值,再copy新值



什么时候retain?

在一个类中又关联其他对象的时候,这个对象的@property (nonatomic, retain)

什么时候使用assign?

实例变量是基本数据类型


2.是否要生产set方法(若为只读属性,则不生成)

readonly:只读,只会生产getter的声明和实现

readwrite:默认的,同时生成setter、和getter方法


修改set和get方法的名称,主要用于布尔类型,因为返回布尔类型的方法名一般以is开头,修改名称一般用在布尔类型中的getter

@property (nonatomic, assign, setter=isPerson:, getter=isPerson) BOOL person;

可以理解为[p setPerson:] --> [p isPerson:] [p getPerson] -->  [p isPerson]

注:setter = isPerson: 后面有一个冒号

3.多线程管理

nonatomic:高性能,一般使用这个

atomic:低性能,默认


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值