前言:作为一个合格的程序开发人员,对于一些模糊的开发技术问题,不仅仅要有强大的搜索能力,更要学会自己做实验来论证和学习。
现在,我有一个疑问,NSMutableArray数组如果没有进行_infoList=[[NSMutableArray alloc]init]能不能使用呢,下面,我们就做个小实验来测试一下:
在ViewDidLoad函数中,我们写下如下内容:
[super viewDidLoad];
NSLog(@"viewDidLoad");
// self.infoList=[[NSMutableArray alloc]init];
[self.infoList addObject:@"info"];
if([self.infoList count]!=0)
{
NSLog(@"not null");
}
NSLog(@"%@",[self.infoList objectAtIndex:0]);
注意我注释掉得那一句,这是没有进行初始化的,在下面那一句中,我在一个没有初始化的NSMutableArray数组中调用了addObject函数来添加一个成员。然后再通过NSLog()打印出来,你们说会不会成功呢?我么一起来看结果:
PlistTest[919:21472] (null)
日志打印出来后,显示infoList没有成员,是一个空的数组。这是因为我们没有初始化的原因造成的。当我们把
// self.infoList=[[NSMutableArray alloc]init];
PlistTest[995:24126] not null
PlistTest[995:24126] info
它就会把我们添加进去的信息给打印出来了,说明,初始化之后才能添加成员。
所以,当使用数组的时候,我们要保证数组初始化之后才能使用。当然,大家也可以做一下NSDictionary的实验。
其实,NSMutabelDictionary也是一样的,都必须进行初始化之后再进行一系列操作。而这些初始化可以在ViewDidLoad之中完成。