【iOS笔记】【17】Weak与unsafe_unretain

本文最后更新于:2021年12月22日 中午

【主页】系列文章目录

【iOS笔记】系列目录


  • weak修饰的指针变量,在指向的内存地址销毁后,会在Runtime的机制下,自动置为nil。
  • _Unsafe_Unretain不会置为nil,容易出现悬垂指针,发生崩溃。但是_Unsafe_Unretain比__weak效率高。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

@interface MyClass()

//@property (nonatomic, strong) NSMutableArray *array;
//@property (nonatomic, weak) NSMutableArray *array;
@property (nonatomic, unsafe_unretained) NSMutableArray *array;

@end

@implementation MyClass

- (void)test {
self.array = @[@"1",@"2"].mutableCopy;
void (^block)(void) = ^ {
//使用unsafe_unretained下面这行会发生崩溃,self.array成了僵尸对象
NSLog(@"%@",self.array);
};
block();
NSLog(@"---");
}


联系方式

邮箱: xiebangyao_1994@163.com

相关账号: