цель-с доступа к массивам - PullRequest
2 голосов
/ 05 мая 2011

Я сделал следующее, пытаясь создать 2d и 3d массивы:

Array1 = [[NSMutableArray alloc]init];
Array2 = [[NSMutableArray alloc]init];
Array3 = [[NSMutableArray alloc]init];

for loop 
[Array1 insertObject:Array2 atIndex:i];
//some code....
[Array2 insertObject:Array3 atIndex:j];

Я не уверен, что это правильно, но каждый раз, когда я зацикливаюсь в своем коде, я добавляю Array2 к новому индексу в Array1, ноЯ уверен, что это работает.Другими словами, я надеюсь, что я не перемещаю весь массив снова каждый раз? !!

Теперь моя проблема заключается в том, что мне нужно получить доступ к массиву 2 через цикл в массиве 1, а затем массив 3 в массив 2.Мне просто нужно знать, как получить доступ к этим массивам с помощью циклов, чтобы я мог отображать содержимое каждого массива.Мне нужно сделать что-то вроде этого массива [i] [j], где «i» для array1 и «j» для array2

Ответы [ 3 ]

3 голосов
/ 05 мая 2011

Создать 3d-массив (NxMxP):

NSMutableArray *array3D = [[NSMutableArray alloc] initWithCapacity:N];

for (int i = 0; i < N; ++i)
{
    NSMutableArray *array2D = [[NSMutableArray alloc] initWithCapacity:M];
    for (int i = 0; i < M; ++i)
    {
        NSMutableArray *justAnArray = [[NSMutableArray alloc] initWithCapacity:P];
        [array2D addObject:justAnArray];
        [justAnArray release];
    }
    [array3D addObject:array2D];
    [array2D release];
}

Использовать это существо:

[[[array3D objectAtIndex:3] objectAtIndex:4] objectAtIndex:1]; // it's like array3D[3][4][1]
0 голосов
/ 05 мая 2011

Просто пишу, что я понял ...
для доступа в массиве в цикле выполните
для петли

 NSArray arr = [Array1 objectAtIndex:i] objectIndex:j]; 


даст arr[i][j];

0 голосов
/ 05 мая 2011

Я не уверен, правильно ли я вас понимаю, но если вы хотите получить доступ к массиву в массиве, вы можете использовать

    [[array1 objectAtIndex:i] objectAtIndex:j];

Просьба пройти через этот ТАК вопрос Как создать Array of Array в iPhone?

Что-то вроде этого вам нужно?

UPDATE

NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"A",@"B",@"C",nil];
NSMutableArray *array2 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",nil];
NSMutableArray *array3 = [[[NSMutableArray alloc] init] autorelease];
[array3 addObject:array2];
[array3 addObject:array1];
for(int i = 0; i < [array3 count]; i++)
  for(int j = 0; j<[array1 count]; j++)
    NSLog(@"From array3 %@",[[array3 objectAtIndex:i] objectAtIndex:j]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...