在访问附有_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块结束之前都能确保对象的存在。