美文网首页
ios中的强引用,弱引用

ios中的强引用,弱引用

作者: KS小么 | 来源:发表于2018-01-09 17:37 被阅读0次

强引用一个弱引用的对象 依旧是强引用 例如,数组, 字典。 想要变成弱引用可以使用NSValue的2个方法valueWithNonretainedObject,返回的是一个NSValue对象这个对象不会对这个Object强引用,在通过NSValue的nonretainedObjectValue属性可以拿到这个对象,这样对这个对象 引用就是弱引用。 但是这有一个问题,弱引用应该满足下面2个条件

   1、不会阻止对象释放 (这点做到了)

   2、对象释放后置空 (这点并不满足)

可以通过使用弱引用的容器[NSHashTable weakObjectsHashTable]

[NSPointerArray weakObjectsPointerArray]

[NSPointerArray pointerArrayWithOptions:]来实现

__weak当对象释放后会被置空

__unsafe_unretained当对象释放后不会被置空,野指针(有时候会用到  对象的原地址做一些释放操作)。

相关文章

  • ios中的强引用,弱引用

    强引用一个弱引用的对象 依旧是强引用 例如,数组, 字典。 想要变成弱引用可以使用NSValue的2个方法val...

  • Weak Reference Soft Reference Ph

    JAVA 中的引用 JAVA 中存在4种引用,由强到弱依次是强引用、软引用、弱引用、虚引用。 强引用(Strong...

  • iOS--强引用,弱引用 及strong, weak,retai

    强引用和弱引用:特点:在强引用中,有时会出现循环引用的情况,这时就需要弱引用来帮忙(__weak)。强引用持有对象...

  • iOS 基础篇 - 强引用与弱引用

    文章概要: (1)在这篇文章主要介绍了iOS的强引用与弱引用的差别。 (2)在文章中使用案例介绍强引用与弱...

  • 面试题笔记

    Java中引用类型的区别,具体的使用场景 Java中引用类型分为四类:强引用、软引用、弱引用、虚引用。 强引用:强...

  • iOS开发中常用的宏

    1,获取屏幕的大小,宽度和高度 用法: 2,弱引用/强引用 弱引用和强引用主要用在Block中,防止循环引用,导致...

  • JAVA 强、软、弱、虚快速理解区别

    JAVA中类型引用分为:强引用、软引用、弱引用、虚引用 强引用 强引用,GC默认不回收,只有在对象没有被引用的时候...

  • 《Android面试题收集1》

    一、Java中的强引用、软引用、弱引用、虚引用 强引用(Strong Reference):默认引用。如果一个对象...

  • iOS强引用与弱引用

    最近在复习iOS内存管理相关的知识,网上找了些资料顺便汇总下。 首先说一些基础性的东西: 1.强引用 在ARC中修...

  • (IOS)强引用与弱引用

    1.强引用 在ARC中修饰符是__strong,比如 __strong NSObject *obj; 不加修饰符的...

网友评论

      本文标题:ios中的强引用,弱引用

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