Многомерный объект NSArray - PullRequest
9 голосов
/ 08 апреля 2010

Есть ли способ создать двумерный NSArray без вложенных массивов в примитивном формате aFloatArray [] [].

Спасибо.

Ответы [ 3 ]

17 голосов
/ 08 апреля 2010

К сожалению нет. Чтобы создать многомерный NSArray:

NSArray *multiArray = [NSArray arrayWithObjects:
    [NSMutableArray array],
    [NSMutableArray array],
    [NSMutableArray array],
    [NSMutableArray array], nil];

// Add a value
[[multiArray objectAtIndex:1] addObject:@"foo"];

// get the value
NSString *value = [[multiArray objectAtIndex:1] objectAtIndex:0];

Однако вы можете использовать C-код в Objective-C (поскольку он является строгим надмножеством C), если он соответствует вашим потребностям, вы можете объявить массив, как вы предлагали.

11 голосов
/ 24 января 2013

Вы можете сделать это:

NSArray *array = @[@[@"0:0", @"0:1"],
                   @[@"1:0", @"1:1"]];

NSString *value = array[1][0];

Я думаю, что это намного короче, чем "objectAtIndex".

, но будьте осторожны, вы используете версию компилятора Apple LLVM> = 4.0

0 голосов
/ 08 мая 2015

Чтобы вставить объект в многомерный массив в Collection или TableView cellForRowAtIndexPath:

NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];                
[dictionary setValue:[UIImage imageWithData:imageData] forKey:sectionRow];

Чтобы извлечь объект из многомерного массива в Collection или TableView cellForRowAtIndexPath:

NSString *sectionRow = [NSString stringWithFormat:@"%d:%d", indexPath.section, indexPath.row];    
UIImage *cellImage = [dictionary valueForKey:sectionRow];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...