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 是内容拷贝。

nonatomic,assign,copy,retain的区别相关推荐

  1. iOS assign copy retain...含义

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 把热带雨林搬进办公室!这样的互联网公司!我愿意加班至死!
  2. android 自定义textview 垂直滚动,Android中TextView如何实现水平和垂直滚动
  3. [转] 爱情的隐式马尔可夫模型(Love in the Hidden Markov Model)
  4. GIS应对新挑战——空间信息网格技术探寻
  5. 复制Oracle表的结构
  6. 在c语言程序中 对文件进行操作首先要,《C语言程序设计》试题八及答案
  7. 域名型通配符ssl证书_西部数码使用指南:申请了主域名SSL证书,是否还需要申请www域名的...
  8. 华为路由交换学习篇-VLAN虚拟局域网
  9. VSCode好用的插件
  10. Adidas商品上货监控,有货时提醒商品尺码
  11. 滞回比较器分析网址总结
  12. ECHARTS的基本使用:柱状图、折线图、饼图等
  13. 计算机化系统验证管理 360,欧盟发布2018版《计算机化系统验证指南》
  14. java下载excel(excel含有多张网络图片)
  15. Redis分布式锁剖析和几种客户端的实现
  16. 史上最全视觉SLAM资料及研究方向思路汇总
  17. 百度搜索为什么这么快?
  18. 基于C#的服装店进销存管理系统设计与实现
  19. CSDN-专业IT技术社区
  20. 图像识别过程(概念)

热门文章

  1. 用上AI后,银行每年竟然能多赚1万亿美元丨麦肯锡最新调查报告
  2. 第6章 I/O复用 select 和 poll 函数
  3. Mysql 共享锁(lock in share mode),排他锁(for update)
  4. 智能汽车带火汽车存储产品 三星/东芝/SK海力士/美光纷纷“下手”
  5. web项目路径如何更改
  6. linux正则表达式awk讲解
  7. linq 实现查询字符串拼接 : And 和 OR 两种方式
  8. 用Ajax 构建关键任务的企业级Web 应用 ——《深入 Ajax :架构与最佳实践》
  9. 云网融合 — 基于 SD-DCA 的云接入网络融合
  10. 5GS 协议栈 — N1 接口的协议栈(NAS)