/ / nested nsmutablearrays taquigrafia - objetivo-c, nsmutablearray

shorthand nsmutablearrays aninhado - objective-c, nsmutablearray

Gostaria de usar o atalho c do objetivo c para acessar os nsmutablearrays aninhados.

NSMutableArray *board;
board[0] = [NSMutableArray new];
board[1] = [NSMutableArray new];
board[2] = [NSMutableArray new];
board[0][0] = @"a";
board[0][1] = @"b";
board[0][2] = @"c";
board[1][0] = @"d";
board[1][1] = @"e";
board[1][2] = @"f";
board[2][0] = @"g";
board[2][1] = @"h";
board[2][2] = @"i";
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
NSLog( @"%@", board[r][c]);
}
}

dá muitos valores nulos. O que estou fazendo errado?

Respostas:

0 para resposta № 1

Apenas um pensamento à primeira vista sem realmente fazer nenhuma investigação ..

você não inicializou a primeira matriz .. você provavelmente também deveria estar usando "array" para inicializar não "novo"

NSMutableArray *board = [NSMutableArray array];
board[0] = [NSMutableArray array];
board[1] = [NSMutableArray array];
board[2] = [NSMutableArray array];
board[0][0] = @"a";
board[0][1] = @"b";
board[0][2] = @"c";
board[1][0] = @"d";
board[1][1] = @"e";
board[1][2] = @"f";
board[2][0] = @"g";
board[2][1] = @"h";
board[2][2] = @"i";
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
NSLog( @"%@", board[r][c]);
}
}

Não é 100% se isso resolverá o seu problema, eu não tentei matrizes aninhadas em objetos como este antes.

você também pode tentar

NSMutableArray *board = [NSMutableArray arrayWithCapacity:3]

se ainda não está funcionando