0

遵循此代码:

在 ViewController.m 中

double kk[2][2] = {{1,2},{5,6}};
if (!matrix1Col) {
    matrix1Col = [NSMutableArray array];
}

for (int i=0; i<2; i++) {
    [matrix1Row removeAllObjects];
    if (!matrix1Row) {
        matrix1Row = [NSMutableArray array];
    }

    for (int j=0 ; j<2; j++) {
        [matrix1Row insertObject:[NSNumber numberWithDouble:kk[i][j]] atIndex:j];
    }
    [matrix1Col insertObject:matrix1Row atIndex:i];
}

self.label100.text = [NSString stringWithFormat:@"%f",[[[matrix1Col objectAtIndex:0] objectAtIndex:0] doubleValue]];
self.label110.text = [NSString stringWithFormat:@"%f",[[[matrix1Col objectAtIndex:1] objectAtIndex:0] doubleValue]];
self.label101.text = [NSString stringWithFormat:@"%f",[[[matrix1Col objectAtIndex:0] objectAtIndex:1] doubleValue]];
self.label111.text = [NSString stringWithFormat:@"%f",[[[matrix1Col objectAtIndex:1] objectAtIndex:1] doubleValue]];`

我想在矩阵的 NSMutableArray 中显示对象,该对象从标签中的双精度矩阵接收值。

我的所有标签必须显示如下 ->label100 显示 1 ->label110 显示 5 ->label101 显示 2 和 ->label111 显示 6

但它显示 ->label100 显示 5 ->label110 显示 5 ->label101 显示 6 和 ->label111 显示 6

我能怎么做?

4

1 回答 1

0

问题是您总是覆盖已插入的对象,因为您在同一个循环中多次插入该行。我就是这样写的:

double kk[2][2] = {{1,2},{5,6}};
NSMutableArray* matrix= [NSMutableArray new];
for(unsigned int i=0; i<2; i++)
{
    NSMutableArray* row= [NSMutableArray new];
    for(unsigned int j=0; j<2; j++)
    {
        [row addObject: @(kk[i][j]) ];
    } 
    [matrix addObject: row];
}
于 2013-02-13T20:03:30.850 回答