zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    python 字典
    python 列表、元组 for 循环
    python字符串
    python之while 循环 格式化、运算符、编码
    Python变量命名的规范、if else 条件语句
    Linux文件管理-主题2
    Linux系统管理-主题1
    Linux操作系统零基础入门学习3
    CCF--二十四点
    第一个Python程序
  • 原文地址:https://www.cnblogs.com/xdl745464047/p/4008410.html
Copyright © 2011-2022 走看看