zoukankan      html  css  js  c++  java
  • iOS基础知识之属性及属性关键字

    iOS属性及属性关键字


    一、属性功能:
    1.给现有的成员变量生成一对setter/getter方法。
    2.如果没有声明成员变量,自动声明一个_属性名的私有变量(默认的成员变量是受保护的)。


    二、属性关键字:
    assign 默认(缺省)关键字,基本数据类型的赋值。
    MRC:手动管理内存
    retain 对象的属性声明,保存引用计数,如果别的对象使用当前对象,则该对象的计数器加1,即两个对象同时指向同一块内存。
    copy 对象的属性声明,直接拷贝对象为一个新的副本,而被拷贝的对象的计数器不会加1,即两个对象分别指向不同的内存,只是内存中的数据相同。

    ARC:自动管理内存
    strong 强指针,增加一个对象的引用权限(引用计数加1)
    weak 弱指针,不会增加对象的引用权限,不会影响对象是否释放。
    strong和weak 应用在对象类型的属性里面
    ARC下可以使用retain,copy。

    线程相关
    nonatomic 单线程的程序的属性声明,缺省关键字,单线程下使用,执行效率高。
    atomic 多线程的程序的属性声明,并不建议使用atomic来处理线程安全,执行效率低。

    属性读取权限的关键字
    readwrite 生成getter和setter方法,缺省权限
    readonly 只生成getter方法,即只能访问,不能赋值。


    三、属性关键字的使用:

    非对象类型 使用assign可省略
    对象类型 使用retain/strong
    NSString 使用copy/strong

     例如:

    1 @property (nonatomic, assign) CGFloat duration;
    2 @property (nonatomic, strong) GLProgram *program;
    3 @property (nonatomic, copy) NSString *dirPath;

     

     

  • 相关阅读:
    打印sql语句方法
    PHP实现innodb的数据回滚
    安装Sublime Text 3插件的方法
    Redis常用命令速查 <第二篇>
    本地配置环境打开项目出现404/本地wampserver配置伪静态以及php.ini配置
    linux的tar命令
    PHP无限极分类详谈
    PHP常用函数及其注释
    PHP常用到的功能函数
    【转】小菜硬件杂谈 细数主板上曾出现过的插槽
  • 原文地址:https://www.cnblogs.com/calence/p/6414298.html
Copyright © 2011-2022 走看看