NSArray使用须知

多用firstObject方法

在iOS7之前,我们获取NSArray的第一个元素,通常使用array[0],在iOS7中,新引入了公开的firstObject方法,对于空数组,该方法返回nil,而使用array[0]则会抛出NSRangeException异常。与firstObject方法对应的是lastObject方法。

创建数组

以数组创建数组

关于构造(可变)数组有一个漂亮的细节可以节省代码量。如果通过一个可能为nil的数组创建一个可变数组,通常会这么写:

NSMutableArray *mutableObjects = [array mutableCopy];
if (!mutableObjects) {
    mutableObjects = [NSMutableArray array];
}

或者通过更简洁的三元运算符:

NSMutableArray *mutableObjects = [array mutableCopy] ?: [NSMutableArray array];

更好的解决方案是使用arrayWithArray:,即使原数组为nil,该方法也会返回一个数组对象:

NSMutableArray *mutableObjects = [NSMutableArray arrayWithArray:array];

这两个操作在效率上几乎相等。使用copy会快一点点,不过话说回来,这不太可能是你应用的瓶颈所在。

创建空数组

比较经典(且简洁)的创建空数组(元素为0)的数组的方式是使用array方法:

// create a mutablearray instance
NSMutableArray *aMutableArray = [NSMutableArray array];
// create a array instance
NSArray *aArray = [NSArray array];

 

posted @ 2015-05-22 11:40  脸大皮厚歌  阅读(239)  评论(0编辑  收藏  举报