nonatomic:

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

assign:

简单赋值,不更改索引计数
               对基础数据类型 (NSInteger)和C数据类型(int, float, double, char, 等)

copy:

建立一个索引计数为1的对象,然后释放旧对象  
            对NSString

retain:

释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1
             对其他NSObject和其子类

copy与retain的区别
copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。
eg:   一个NSString 对象,地址为0×1111 ,内容为@”STR”

Copy 到另外一个NSString 之后,地址为0×2222 ,内容相同,新的对象retain为1 ,旧有对象没有变化

retain 到另外一个NSString 之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1

也就是说,retain 是指针拷贝,copy 是内容拷贝。

object-c语言的nonatomic,assign,copy,retain的区别相关推荐

  1. iOS assign copy retain...含义

    assign: 简单赋值,不更改索引计数 copy: 建立一个索引计数为1的对象,然后释放旧对象 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 Copy其实是建立 ...

  2. 创建对象时引用的关键字,assign,copy,retain

    创建对象时引用的关键字: assign: 简单赋值,不更改索引计数(强引用) copy: 建立一个索引计数为1的对象,然后释放旧对象 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对 ...

  3. copy, retain, assign , readonly , readwrite,strong,weak,nonatomic整理

    copy:建立一个索引计数为1的对象,然后释放旧对象 对NSString 对NSString 它指出,在赋值时使用传入值的一份拷贝.拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协 ...

  4. atomic与nonatomic,assign,copy与retain的定义和区别

    atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作. atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全. 在多线程环境 ...

  5. IOS atomic与nonatomic,assign,copy与retain的定义和区别

    atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作.         atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全 ...

  6. c语言assign用法,object-c语言的nonatomic,assign,copy,retain的区别

    nonatomic: 非原子性访问,不加同步,多线程并发访问会提高性能.如果不加此属性,则默认是两个访问方法都为原子型事务访问. (atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写 ...

  7. OC指示符assign、atomic、nonatomic、copy、retain、strong、week的解释

    在使用@property定义property时可以在@property与类型之间用括号添加一些额外的指示符,常用的指示符有assign.atomic.nonatomic.copy.retain.str ...

  8. nonatomic,assign,copy,retain的区别

    nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能.如果不加此属性,则默认是两个访问方法都为原子型事务访问.                     (atomic是Objc使用的一 ...

  9. iOS属性之assign,copy,retain的区别以及weak和strong的区别

    为什么80%的码农都做不了架构师?>>>    @property (nonatomic, assign) NSString *title; 什么是assign,copy,retai ...

最新文章

  1. 生成对抗网络gan原理_中国首个“芯片大学”即将落地;生成对抗网络(GAN)的数学原理全解...
  2. 腾讯offer-众里寻他千百度
  3. keyshot环境素材文件_快速学会keyshot基础渲染的步骤
  4. 机器学习之朴素贝叶斯算法的推理及相关知识总结
  5. python alpha量化交易软件_2019AI量化交易教程视频 AI量化交易模型教程 alpha量化选股模型交易系统 CTA型量化策略教程...
  6. eeglab导出图片
  7. TinyPNG批量压缩工具脚本Python
  8. FlexBuilder 插件
  9. EXCEL,如何进行查找,单条件和多条件查询
  10. 一个三非渣本的安卓秋招之路
  11. 健身服务公司iFIT赴美上市,64亿美元估值中藏着“喜”与“忧”?
  12. 云原生数据湖以存储、计算、数据管理等能力通过信通院评测认证
  13. Apache 502 Bad Gateway
  14. DCMTK、ITK、VTK读取dicom信息
  15. CMWAP 和 CMNET
  16. X-Powered-by
  17. 为什么一群人之中,蚊子就“盯”着你?为你揭秘“蚊子”的真相!
  18. JavaFX桌面应用开发-菜单栏-MenuBar、Menu 、MenuItem
  19. 二、UNO项目Demo创建时遇到的问题
  20. Delphi TStringGrid 类(1)

热门文章

  1. 人民日报三问人工智能,给法律制度带来哪些挑战?
  2. 不要再被 Python 洗脑了!!
  3. 写给大忙人看的死锁详解
  4. SDWebImage开源库阅读分析(全)
  5. 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
  6. repmgr 4.3 发布,PostgreSQL 复制与故障转移管理工具
  7. 阿里云发布Quick BIV3.0,人人都能轻松进行在线数据分析
  8. javascript中while循环、do....while与for循环的用法和区别
  9. com.sun.crypto.provider.SunJCE
  10. 手机应用:非功能需求 Check List