• 05-@property参数


     

    1、跟内存管理相关的参数

    (1)retain   :   release 旧值,retain新值(适用于OC对象类型)。

    (2)assign : 直接赋值(默认,适用于非OC对象类型)。

    (3)copy     :  release旧值,copy新值(一般用于NSString)。

    2、是否要生成set方法

    (1)readwrite : 告诉编译器, 在自动生成属性方法时, 同时生成setter和getter的声明和实现。(默认)

    (2)readonly  : 告诉编译器, 在自动生成属性方法时, 只会生成getter的声明和实现。

    3、多线程管理

    (1)atomic       :  原子特性, 保证线程安全, 内部做了安全处理(加锁与解锁), 性能低。(默认)

    (2)nonatomic :  非原子特性, 不保证线程安全, 因为对于setter和getter的使用比较频繁, 在一段时间内可能要多次访问, 所以使用atomic会非常消耗系统资源, 降低程序执行效率, 使用nonatomic虽然不保证线程安全, 但是一般情况下使用都是安全的, 所以对于原子特性, nonatomic性能高, 推荐使用nonatomic。(推荐使用)

    4、setter和getter方法的名称

    (1)setter : 决定了set方法的名称,一定要有个冒号:

    (2)getter:决定了get方法的名称

    @property (getter xxx)int weight;

    @property (setter xxx:)int weight;

    原来的get方法名为weight;新的get方法名就是括号中的xxx。

    原来的set方法名为setWeight:;新的get方法名就是括号中的xxx:。(冒号不能丢)

    (3)返回BOOL类型的方法名一般以is开头

    例如:@property (getter = isRich)BOOL rich;

  • 相关阅读:
    转 oracle dual表
    笑话收集
    ls指令排序
    oracle中的连接
    linux系统磁盘突然满了解决方案
    转 Oracle temp空间管理
    11个JavaScript颜色选择器插件
    C#部分正则判断
    Script Encoder:screnc.exe加密解密
    JavaScript Tween算法及缓动效果
  • 原文地址:https://www.cnblogs.com/xdl745464047/p/4008410.html
Copyright © 2020-2023  润新知