iOS中你不曾注意到的细节问题

iOS中你不曾注意到的细节问题_第1张图片

1.NSString的rangeOfString方法的使用

看如下代码:


iOS中你不曾注意到的细节问题_第2张图片

输出结果如下:


显然test中不包含xx,但是结果不对,为什么呢,因为在test字符串为nil的时候,在调用rangeOfString的时候,得到的NSRange的结果是这样的:


iOS中你不曾注意到的细节问题_第3张图片

由此可见,location的值为0,而NSNotFound的值为9223372036854775807,即LONG_MAX的值,所以在字符串为nil的时候,使用NSString的rangeOfString方法时候,要先判断下非nil,否则location永远都不等于NSNotFound!


2.[[NSMutableArray alloc]initWithCapacity:1];

内存优化,initWithCapacity这个方法不经常使用,一般用来定义固定内存,如果直接用init,给array的内存分配会成倍的增加


~~不断更新中~~

你可能感兴趣的:(iOS中你不曾注意到的细节问题)