A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无色无味 中级黑马   /  2016-3-14 15:43  /  872 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

@property使用要注意哪些?

3 个回复

倒序浏览
后边主要跟参数一块用
@property参数  共分3类
- 原子性:
    - atomic(默认)----线程安全, 保证一个线程操作接收后, 另外的线程才能进行其他操作, 性能低
    - nonatomic----线程不安全, 可以同时读取, 有可能出错, 速度快
        - 如果没有采用多线程, 建议用nonatomic
- 读写属性
    - readwrite(默认)----读写, 生成getter和setter的声明和实现
    - readonly----只读, 只生成getter的声明和实现
- set方法处理
    - assign(默认)----成员变量是基本数据类型时(或C语言的构造类型)----直接赋值
    - retain----成员变量是对象类型时----release原对象, retain新对象
    - copy----对象类型----release原对象, copy新对象(一般用于NSString *)
回复 使用道具 举报
eg.
@property (nonatomic,readwrite,retain) Dog *dog;
但MRC手动内存管理情况下, retain和assign有例外情况
回复 使用道具 举报
如果为BOOL类型, 还可改写setter和getter方法的名称.
eg.
@property(nonatomic,assign, setter=setVip:,getter=isVip) BOOL vip;     //注意冒号
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马