zoukankan      html  css  js  c++  java
  • ios strong weak 的区别 与 理解

    先一句话总结:strong类保持他们拥有对象的活着,weak类他们拥有的对象被人家一牵就牵走,被人家一干就干死。(strong是一个好大哥所以strong,呵呵,weak是一个虚大哥所以weak,呵呵)

    比如有一个对象是string类,实例是@“hello”

    现有两个strong的string指针大哥a和b都指向了hello,现在b大哥把改成了指向@“hi”。那么这时候a大哥指向的值是什么呢,答案还是“hello”。然后,a大哥看hi不错,也指向了hi,那么现在hello就被都抛弃了,也就从内存中删除了。因为a大哥是strong的,既是retain或者copy的,这两个东西是可以使对象保存在计算机内存里的,所以如果即使b大哥抛弃hello,a大哥是有资本使@“hello”继续活下去。

    而现在又有两个对象strong的c大哥和weak的d大哥,都指向hello,现在c大哥另有所爱,指向了之前的b大哥,同时a大哥也指向了b大哥,既现在没有strong大哥指向hello。那么现在这个weak的d大哥指向的对象就是一个屁啦,既nil。

  • 相关阅读:
    人见人爱a+b,算出两个时间的和
    远程推送原理
    iOS中的定时器
    四大对象
    核心动画类关系图
    无沙盒缓存原理
    应用程序的生命周期
    同样明文同样算法得到不同密码原理
    线程状态
    iOS中的几个重要方法
  • 原文地址:https://www.cnblogs.com/ccguo/p/3353616.html
Copyright © 2011-2022 走看看