/ / вкладені nsmutableвиділяє строк - об'єкт-c, nsmutablearray

вкладені nsmutablearrays стенограми - об'єктивно-c, nsmutablearray

Я хотів би скористатися об'єктивною c скороченням для доступу до вкладених nsmutablearrays.

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]);
}
}

дає багато нулів. Що я роблю неправильно?

Відповіді:

0 для відповіді № 1

Тільки думка на перший погляд, без реального розслідування ..

Ви не ініціалізували перший масив .. також ви, ймовірно, повинні використовувати "масив" для ініціалізації не "нового"

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]);
}
}

Не 100%, якщо це вирішить вашу проблему, я не намагався вкладених масивів в Objc, як це раніше.

Ви можете також спробувати

NSMutableArray *board = [NSMutableArray arrayWithCapacity:3]

якщо він ще не працює