这是我测试的代码:
- (void)testArray {
NSArray *array = [NSArray arrayWithObjects:@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1",@"1", nil];
int index = 10;
NSDate *date = [NSDate date];
NSLog(@"array[%d] = %@", index, array[index]);
NSDate *date2 = [NSDate date];
NSTimeInterval timeInterval1 = [date2 timeIntervalSinceDate:date];
NSLog(@"timeInterval1 = %f", timeInterval1);
NSDate *date3 = [NSDate date];
NSLog(@"[array objectAtIndex:%d] = %@", index, [array objectAtIndex:index]);
NSDate *date4 = [NSDate date];
NSTimeInterval timeInterval2 = [date4 timeIntervalSinceDate:date3];
NSLog(@"timeInterval2 = %f", timeInterval2);
}
运行结果是这样的:
2014-03-21 11:58:56.957 path_test[1972:70b] array[10] = 1
2014-03-21 11:58:56.959 path_test[1972:70b] timeInterval1 = 0.001497
2014-03-21 11:58:56.959 path_test[1972:70b] [array objectAtIndex:10] = 1
2014-03-21 11:58:56.960 path_test[1972:70b] timeInterval2 = 0.000439
效率方面: 在取数组相同数据的时候 使用新增的 [ index ] 这种方式取数据效率会比 用 objectAtIndex:index 这种方式更低(在取相同位置数据时第二种用的时间会更少)
如何选择: 我觉的如果数据多的话,或着频繁取数据时最好用第二种(objectAtIndex),