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]];`

ラベルのdoubleの行列から値を受け取る行列のNSMutableArrayにオブジェクトを表示したいと思います。

そして、私のすべてのラベルは次のように表示される必要があります-> label100 show 1-> label110 show 5-> label101 show 2 and-> label111 show 6

ただし、-> label100 show 5-> label110 show 5-> label101show6および->label111show6と表示されます。

どのようにできるのか?

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 に答える