在MRC中是没有weak的概念直到ARC中才有weak的出现,而assign是一直存在,两朝元老:

共同点:

  • 不是强引用, 不能保住OC对象的生命
  • 都可以作用于对象

不同点

  • weak只能作用于对象,不能作用于基本数据类型
  • assign不但能作用于对象还能作用于基本数据类型
  • weak所指向的对象销毁时会将当前指向对象的指针指向nil,防止野指针的生成
  • assign所指向的对象销毁时不会将当前指向对象的指针指向nil,有野指针的生成

    所以在ARC中一般数据类型指定为assign而对象则会指定为weak、strong、copy。

assign和weak之间的区别相关推荐

  1. iOS中copy,retain,strong,assign,weak的区别以及使用

    使用assign: 对基础数据类型 (NSInteger)和C数据类型(int, float, double, char,等) 使用copy: 对NSString 使用retain: 对其他NSObj ...

  2. Objective-C之MRC、ARC模式下,属性修饰关键字strong、retain、assign、weak的区别和联系...

    平时用strong.retain.assign.weak这几个关键字的时候,也没有过多的在意,下边就MRC.ARC模式下,每个关键字做一下总结.为了简明期间,采用表格的形式进行展示. MRC ARC ...

  3. iOS中assign和weak的区别

    一.区别 assign与weak,它们都是弱引用声明类型,最大的区别在那呢? 如果用weak声明的变量在栈中就会自动清空,赋值为nil. 如果用assign声明的变量在栈中可能不会自动赋值为nil,就 ...

  4. iOS weak和assign修饰OC对象的区别

    /*1.weak1> OC对象2.assign1> 基本数据类型2> OC对象3.strong1> OC对象4.copy1> NSString2> block5.使 ...

  5. iOS中assign和weak修饰符的区别

    一.区别 assign与weak,它们都是弱引用声明类型,最大的区别在那呢? 如果用weak声明的变量在栈中就会自动清空,赋值为nil. 如果用assign声明的变量在栈中可能不会自动赋值为nil,就 ...

  6. Pandas中map,applymap和apply方法之间的区别

    本文翻译自:Difference between map, applymap and apply methods in Pandas Can you tell me when to use these ...

  7. location.href、location.assign和location.replace的区别

    在写跳转页面的时候遇到个有意思的问题,RT的三个均能用来写跳转,总结了下它们之间的区别. 1.window.location.href="url";      改变url地址. l ...

  8. weakreference_Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别...

    weakreference 很长一段时间以来,WeakReference和SoftReference都已添加到Java API中,但是并不是每个Java程序员都熟悉它. 这意味着在Java中使用Wea ...

  9. Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别

    很长一段时间以来,WeakReference和SoftReference都已添加到Java API中,但是并不是每个Java程序员都熟悉它. 这意味着在Java中使用WeakReference和Sof ...

最新文章

  1. 在YII2框架中使用UEditor编辑器发布文章
  2. 跟互联力量学Asp.net MVC3-安装和创建
  3. 【Java18】Mybatis:jdbc解耦,动态代理,日志
  4. 使用StringWriter和StringReader的好处
  5. android+adt+很慢,Android的模拟器,在ADT中调试运行AVD时,速度太慢
  6. 更方便地模拟 Http 响应
  7. 简单的ajax上传商品功能使用SevletFileUpload和FormData
  8. Spring配置文件总结
  9. js中的 toUpperCase()中开头的u和c一定要大些
  10. Linux驱动开发必看
  11. Layout自动布局(2)-手写代码
  12. 【Magick++】配置开发环境
  13. 洛谷p5369[PKUSC2018]最大前缀和
  14. Activiti 会签/或签 设计思路
  15. 大数据工具七剑下天山之Flume (一)
  16. 解决react native打包apk文件安装好之后进入应用闪退的问题
  17. 计算机应用word单元测试2,(计算机应用基本技能测试二.doc
  18. 比特率 波特率 数据传输速率 区别
  19. C#获取企业微信打卡数据
  20. 批量压缩多文件-批处理(四)

热门文章

  1. patch 修补文件命令
  2. excel宏计算机,excel宏教程_电脑基础知识_IT计算机_专业资料.doc
  3. Spring boot的特性与四大核心
  4. Java毕设项目-医药信息管理系统
  5. 人机交互技术课程实验报告《社交点评APP》系统移动界面分析报告
  6. python的数据与matlab互通:SciPy
  7. 芯片供应最难的居然是TI,交期拉长
  8. silvaco 仿真BJT
  9. CAD偏移曲线(com接口c#语言)
  10. vscode 状态栏图标异常问题