访问附有_weak修饰符的变量

来源:互联网 发布:ubuntu 杀死进程 编辑:程序博客网 时间:2024/06/07 01:15

在访问附有_weak修饰符的变量时,实际上必定要访问注册到autoreleasepool的对象。

id _weak obj1 = obj0;NSLog(@"class = %@",[obj1 class]);

以下源代码与此相同

id _weak obj1 = obj0;id _autoreleasing tmp = obj1;NSLog(@"class = %@",[tmp class]);

因为_weak 修饰符只持有对象的弱引用,而且在访问引用对象的过程中,该对象可能被废弃。如果把要访问的对象注册到autoreleasepool中,那么在@autoreleasepool块结束之前都能确保对象的存在。

因此,在使用附有_weak 修饰符的变量时就必定要使用注册到autoreleasepool中的对象。

0 0
原创粉丝点击