美文网首页
内存管理语义

内存管理语义

作者: memelook | 来源:发表于2018-01-03 19:40 被阅读1次

assign "设置方法"只会执行针对纯量类型,例如CGFloat、NSInteger等简单赋值操作
strong 表明属性有一种拥有关系,为该属性设置新值时,设置方法会先保留新值,并且释放旧值,然后再将新值设置上去
weak 表明属性是一种非拥有关系,设置方法不保留新值,也不释放旧值,和assign一样,拥有该属性的对象销毁时候,属性值也会清空
unsafe_unretained 和weak相似,但属性不会自动情空
copy 设置方法并不保留新值,而是将其拷贝,例如可变字符串、可变数组、可变字典等都需要用copy声明,复制无法深复制

atomicnonatomic的区别:
当一个线程现在读写一个属性,而另一个线程突然将未修改好的属性值读出来,读来的属性值就会不对。这就是nonatomic会造成的影响。但在iOS开发,atomic不能保证线程安全,而且消耗性能大,所以一般还是用nonatomic

相关文章

  • 内存管理

    内存管理语义http://www.jianshu.com/p/c579cf4b53f7 ios内存管理语义 ass...

  • 内存管理语义

    assign "设置方法"只会执行针对纯量类型,例如CGFloat、NSInteger等简单赋值操作strong...

  • 内存管理语义

    MRC 1. assign MRC 下 assign 为属性的默认修饰符,无论是简单的数据类型,还是指向对象的指针...

  • Effective Objective-C 2.0 编写高质量

    内存管理语义属性用于封装数据,而数据则要有“具体的所有权语义”(concrete ownership semant...

  • 聊聊java内存模型

    本文目录 Java内存模型 重排序 内存屏障 volatitle的内存语义 final的内存语义 一、Java内存...

  • @property---内存管理语义

    1、strong:持有特性,setter先保留,后赋值2、copy:拷贝特性,setter先复制,后赋值3、wea...

  • OC-内存管理语义

    assign:'设置方法'只会针对「纯量类型」如CGFloat、NSInteger等 strong:表明「拥有关系...

  • 内存管理

    一、内存管理语义(assign、strong、weak等的区别) 1、assign “设置方法” 只会执行针对“纯...

  • Java并发编程的艺术

    第三章 volatile 3.4.4 volatile内存语义的实现 为了实现volatile内存语义,JMM会分...

  • Collection对象里的内存管理语义

    第一部分 collection包含的基础对象内存管理语义 NSMutableDictionary key、valu...

网友评论

      本文标题:内存管理语义

      本文链接:https://www.haomeiwen.com/subject/dwjknxtx.html