2D массивы в Objective C - PullRequest
       13

2D массивы в Objective C

0 голосов
/ 23 августа 2009

У меня есть коллекция объектов NSO, которые я хочу сохранить в двумерном массиве, созданном во время выполнения. В C # я бы просто использовал некоторые из их дружественных универсальных контейнеров, но не слишком уверен, что лучший способ сделать это в target-c для разработки на iphone.

Я предполагаю, что NSMutableArray - не лучший маршрут. Мне не нужен массив для роста, я буду знать размер, который мне нужен, когда будет создан мой менеджер сетки, но сетка будет строиться с высотой и шириной среды выполнения.

Должен ли я делать что-то вроде 'NSObject ** gridObjects = alloc ...'?

Ответы [ 2 ]

3 голосов
/ 23 августа 2009

Если вы собираетесь хранить указатели в вашем 2D-массиве, вам придется использовать:

NSObject ***gridObjects

Я бы просто использовал NSArray из NSArray объектов (2D).

0 голосов
/ 23 августа 2009

В Objective-C вы всегда можете использовать простые вещи C (я бы не советовал делать это, если у вас нет веских причин для этого):

NSObject** *twoDArray = malloc(sizeof(NSObject**) * rows);
for (i = 0; i < rows; ++i)
    twoDArray[i] = malloc(sizeof(NSObject*) * cols);

Чтобы изменить размер каждого блока, вы можете использовать realloc (если вам даже нужно). Не забудьте free после использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...