• 属性


    属性的特性是一些修饰符, 影响属性对应的settergetter方法的内部细节

    属性的特性第一类  读写性

    1.readonly 只读, 属性生成了  getter方法, 没有setter方法

    @property (readonly) NSString *gender;

     

    2.readwrite,可读可写,属性既生成了setter,也生成了getter 读写性控制中,readwrite是默认的修饰符, 所有属性,如果不加修饰,全部都是可读可写的

    @property (readwrite) NSString *name;

     

    3.setter= ,修改的是setter方法的方法名

    4.getter 修饰的是getter方法的方法名

    @property (readwrite, setter=aa:, getter=bb) NSInteger age;

    属性的特性第二类 原子性

    1.atomic,原子性,默认修饰符, 保证了实例变量在多线程情况下访问是安全的,通过不断的加锁解锁实现在同一时刻实例变量只能被一个线程访问,但是不断的加锁解锁会耗费大量的CPU性能,所以虽然是默认的,但是我们不会采用

    2.nonatomic,非原子性,属性常用的修饰符

     

    @property (nonatomic) NSString *habby;

     

    属性的特性第三类  语意特性

    语义不同,直接决定了属性对应的settergetter方法内部实现的不同

    1.assign 修饰的属性是非对象类型

    2.retain  所有对象类型的属性,都可以用retain修饰

    3.copy  copy也是用来修饰对象类型的属性,但是一定要保证,代表属性类型的这个类。必须接收了NSCopying协议,而且实现了copyWithZone :方法。字符串通常常用copy修饰

     

    @property (nonatomic) CGFloat height;

     

    @property (nonatomic, retain) NSString *school;

     

    @property (nonatomic, copy) NSString *major;

  • 相关阅读:
    echarts地图引入json或者js
    SpringMVC开启定时任务
    MYSQL基础
    js获取表格单元格中的元素
    转载:【Java基础】InputStream 、 InputStreamReader和BufferedReader
    转载:普通索引和唯一索引的区别、性能差异,以及其他索引简介
    String与StringBuffer之间的转换
    回调
    Java中的类加载器
    ecshop ajax 的调用原理
  • 原文地址:https://www.cnblogs.com/hjplcl/p/5204326.html
Copyright © 2020-2023  润新知