如何防止 NSMutableArray 为 nil ,导致数据无法写入

  • Demo
NSMutableArray *dataArray = [[NSMutableArray alloc] init];
[dataArray addObject:@"123"];
NSLog(@"1--%@",dataArray);//打印数组
NSLog(@"1----%p",dataArray);//打印数组内存地址

dataArray = nil;
[dataArray addObject:@"456"];
NSLog(@"2--%@",dataArray);
NSLog(@"2----%p",dataArray);
  • 打印结果
1--(
    123
)
1----0x600000051880
2--(null)
2----0x0
  • 结论

调用dataArray = nil后,指针不指向任何内存块,即内存地址:0x0,此时无论对dataArray进行addObject还是remove操作,都是无法进行的。

  • 解决办法
dataArray = [[NSMutableArray alloc] init];
dataArray = [[NSMutableArray alloc] initWithCapacity:sectionTitles.count];
dataArray = [NSMutableArray new];
dataArray = [NSMutableArray array];
dataArray = [NSMutableArray arrayWithCapacity:sectionTitles.count];

Hello 2017.

你可能感兴趣的:(如何防止 NSMutableArray 为 nil ,导致数据无法写入)