面试题答案
一键面试在Objective-C中遍历二维数组并进行计算操作可以这样实现:
NSArray *outerArray = @[
@[@1, @2, @3],
@[@4, @5, @6],
@[@7, @8, @9]
];
for (NSUInteger i = 0; i < outerArray.count; i++) {
NSArray *innerArray = outerArray[i];
for (NSUInteger j = 0; j < innerArray.count; j++) {
NSNumber *number = innerArray[j];
// 在这里进行计算操作,例如:
NSInteger result = [number integerValue] * 2;
NSLog(@"%ld", (long)result);
}
}
关于性能优化,避免不必要的内存访问可以从以下几个方面入手:
- 缓存数组长度:在循环外部获取数组长度,避免每次循环都进行属性访问操作。如上述代码中提前获取
outerArray.count
和innerArray.count
。 - 减少临时变量创建:尽量减少循环内部临时变量的创建,以减少内存分配和释放开销。例如上面代码中如果多次需要
[number integerValue]
的值,可以先将其存储在一个NSInteger
类型变量中。 - 使用局部变量存储经常访问的对象:像
outerArray[i]
这样经常访问的对象,将其存储在局部变量innerArray
中,避免每次循环都重新从数组中取值。