语法

一、 属性

  1. readwrite, readonly, assign, retain, copy, nonatomic属性的作用:
    @property是一个属性访问声明, 括号内支持一下几个属性:
    • getter = getterName, setter = setterName, 设置settergetter方法名
    • assign: setter方法直接赋值, 不进行任何retain操作, 解决原类型与循环引用问题
    • retain: setter方法进行copy操作,与retain处理流程一样,先release旧值,在copy新的对象,retainCount == 1. 减少对上下文的依赖而引入的机制. copy是在你不希望a和b共享一块内存是会使用到,a和b有个字的内存
    • readwrite,readonly: 设置可访问的级别
    • nonatomic: 非原子性访问,不加同步,多线程并发访问会提高性能, 默认为院子性访问.
  1. copy

    • copy使用场景
      当多个指针指向同一个对象时, 为避免一个指针对对象的改动对其他指针的使用产生影响,使用copy来修饰.

    • 深拷贝、浅拷贝
      对于非容器内对象,不可变对象进行copy操作为浅拷贝,引用计数器+1,其他