Ios 在目标C中添加二维数组的对角线

Ios 在目标C中添加二维数组的对角线,ios,objective-c,arrays,multidimensional-array,Ios,Objective C,Arrays,Multidimensional Array,给定:二维数组: [[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],

给定:二维数组:

 [[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);

这里我无法访问数组的元素。它在“数组[行][行]”上给出错误。初始化2D数组并访问Objective-C中数组元素的最佳方法是什么?

在代码中,您在这里所做的是:
for(数组中的NSNumber*行)
数组的每个元素放入
变量中(这称为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);
NSMUTABLEARRY*array=[NSMUTABLEARRY arrayWithObjects:[NSMUTABLEARRY arrayWithObjects:@1、@2、@3、nil],
[NSMutableArray阵列,其对象:@4、@5、@6、nil],
[NSMutableArray阵列,其对象为:@9、@8、@9、nil]和nil];
NSInteger总数=0;
对于(整数行=0;行
在您的代码中,您在这里做的是:
for(数组中的NSNumber*行)
数组的每个元素放入
变量中(这称为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);
NSMUTABLEARRY*array=[NSMUTABLEARRY arrayWithObjects:[NSMUTABLEARRY arrayWithObjects:@1、@2、@3、nil],
[NSMutableArray阵列,其对象:@4、@5、@6、nil],
[NSMutableArray阵列,其对象为:@9、@8、@9、nil]和nil];
NSInteger总数=0;
对于(整数行=0;行
NSU整数总计=0;对于(整数i=0,i