zoukankan      html  css  js  c++  java
  • iOS开发系列-weak与unsafe_unretained修饰符

    概述

    在iOS内存管理中,为防止循环引用,定义类的内部对象属性使用weak、unsafe_unretained修饰符,不产生强引用。

    开发中一般使用的weak修饰符,那么接下来说下weak跟unsafe_unretained的本质区别。这里涉及顺便了解到一些iOS内存管理的本质。

    weak与unsafe_unretained区别

    weak修饰的对象指针,当指向的对象在内存中销毁后,该指针自动赋值为nil。也就是说指针变量保存的地址值为0x0。
    对于Objective-C的特性 给nil发送消息不会报错。

    unsafe_unretained修饰的对象指针,当指向的对象在内存中销毁后,此时的对象称之为僵尸对象。该指针依然指向该对象,即指针变量依然保存着销毁对象的内存地址。
    对于Objective-C的特性,给僵尸对象发送消息会造成野指针错误。

  • 相关阅读:
    调用AsyncTask的excute方法不能立即执行程序的原因分析及改善方案
    辅助
    目录检索
    高斯消元法
    树套树
    珂朵莉树
    卢卡斯定理
    中国剩余定理
    数论基础
    网络流基础
  • 原文地址:https://www.cnblogs.com/CoderHong/p/9036662.html
Copyright © 2011-2022 走看看