zoukankan      html  css  js  c++  java
  • 属性

    属性的特性是一些修饰符, 影响属性对应的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;

  • 相关阅读:
    JS中的call_user_func封装
    js中insertAdjacentHTML的玩法
    小tip: DOM appendHTML实现及insertAdjacentHTML
    js获取和设置属性的方法
    安装Yeoman,遇到的问题
    HTML中Select的使用详解
    jQuery Ajax异步处理Json数据详解
    chrome浏览器Uncaught TypeError: object is not a function问题解决
    SpringBoot Web实现文件上传下载功能实例解析
    SpringMVC Web实现文件上传下载功能实例解析
  • 原文地址:https://www.cnblogs.com/hjplcl/p/5204326.html
Copyright © 2011-2022 走看看