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.由此可见,强引用时对变量拥有,弱引用时只是指向该变量而不拥有。
本文通过一段Objective-C代码示例,详细解释了强引用和弱引用的区别及作用机制。通过对比强引用和弱引用在不同情况下的表现,帮助读者理解两者之间的差异。
5万+

被折叠的 条评论
为什么被折叠?



