zoukankan      html  css  js  c++  java
  • oc __weak和__strong的区别

    1.先上代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    id __weak obj=[[NSObject alloc]init];
        NSLog(@"弱引用自身地址:%p",&obj);
        NSLog(@"弱引用指向地址:%p",obj);
     
        id __strong obj0=[[NSObject alloc]init];
        id __weak obj1=obj0;
        NSLog(@"强引用自身地址:%p",&obj0);
        NSLog(@"弱引用自身地址:%p",&obj1);
        NSLog(@"强引用指向地址:%p",obj0);
        NSLog(@"弱引用指向地址:%p",obj1);
        
        obj1=nil;
    //    obj0=nil;
        NSLog(@"弱引用销毁时强类型变量指向地址:%p",obj0);
        NSLog(@"弱引用销毁时弱类型变量指向地址:%p",obj1);

     2.运行结果

    3.当强类型变量设为nil时,两个变量都指向空

    4.由此可见,强引用时对变量拥有,弱引用时只是指向该变量而不拥有。

  • 相关阅读:
    Vue Router基础
    Bootstrap4入门
    React性能优化
    Koa,React和socket.io
    RN-进阶
    RN-入门基础
    RN-环境配置
    React高级指引
    React基础概念
    实现A-Z滑动检索菜单
  • 原文地址:https://www.cnblogs.com/yulei126/p/6783225.html
Copyright © 2011-2022 走看看