• OC中属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?


    此次只做简单说明,不做代码演示!

    1> readwrite:同时生成get方法和set方法的声明和实现

    2> readonly:只生成get方法的声明和实现

    3> assign:set方法的实现是直接赋值,用于基本数据类型

    4> retain:set方法的实现是release旧值,retain新值,用于OC对象类型

    5> copy:set方法的实现是release旧值,copy新值,用于NSString、block等类型

    6> nonatomic:非原子性,set方法的实现不加锁(比atomic性能高)

    注意点:(nonatomic)非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。(atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所 以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

    如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
  • 相关阅读:
    nested exception is java.lang.IllegalStateException: No persistence units parsed from {classpath*:META-INF/persistence.xml}
    Thrift Expected protocol id ffffff82 but got 0
    idea
    Activity工作流入门之HelloWorld
    Thrift 入门之helloWorld
    Thrift入门之mac下的安装流程
    netty的解码器与粘包和拆包
    java反射(一)
    使用Spring报错:No default constructor found;
    jpa关联映射(一)
  • 原文地址:https://www.cnblogs.com/wvqusrtg/p/4498511.html
Copyright © 2020-2023  润新知