oc __weak和__strong的区别

  1. 云栖社区>
  2. 博客>
  3. 正文

oc __weak和__strong的区别

社会主义 2016-04-19 10:06:56 浏览2511
展开阅读全文

1.先上代码



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.由此可见,强引用时对变量拥有,弱引用时只是指向该变量而不拥有。


网友评论

登录后评论
0/500
评论
社会主义
+ 关注