![](/img/trans.png)
[英]How to add and update the objects of two dimensional array in objective-c?
[英]Add diagonal of 2 dimensional array in Objective C
给定:2维数组:
[[1 2 3]
[4 5 6]
[9 8 9 ]]
需要添加数组的对角线:1 + 5 + 9 = 15
NSMutableArray *array = [NSMutableArray arrayWithObjects:[NSMutableArray arrayWithObjects:@1,@2,@3,nil],
[NSMutableArray arrayWithObjects:@4,@5,@6,nil],
[NSMutableArray arrayWithObjects:@9,@8,@9,nil],nil];
NSNumber* total = 0;
for (NSNumber* row in array) {
total = total + array[row][row];
}
NSLog(@"%@",total);
在这里,我无法访问数组的元素。 它在“ array [row] [row]”上给出错误。 在Objective-C中初始化2D数组和访问数组元素的最佳方法是什么?
在您的代码中,您正在执行的操作: for (NSNumber* row in array)
,将array
每个元素放在row
变量内(这称为数组枚举 btw)。
您需要使用数组的索引 -而不是每个元素的值 (这就是您在上面所做的事情)。
同样,您不必使用对象( NSNumber *
)进行计算。 一个简单的NSInteger即可。
这是代码:
NSMutableArray *array = [NSMutableArray arrayWithObjects:[NSMutableArray arrayWithObjects:@1,@2,@3,nil],
[NSMutableArray arrayWithObjects:@4,@5,@6,nil],
[NSMutableArray arrayWithObjects:@9,@8,@9,nil],nil];
NSInteger total = 0;
for (NSUInteger row = 0; row < array.count; row ++) {
total = total + [array[row][row] integerValue]; // integerValue converts the NSNumber to an NSInteger
}
NSLog(@"%d",total);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.