2013-10-27 2 views

ответ

2
NSArray *twoDArray = @[@[@"0.0", @"0.1"], 
         @[@"1.0", @"1.1", @"1.2"], 
         @[@"2.0", @"2.1", @"2.2"] 
        ]; 

Access это нравится:

// result = "0.1" 
NSString *result = twoDArray[0][1]; 

// result = "1.2" 
result = twoDArray[1][2]; 

// result = "2.0" 
result = twoDArray[2][0]; 

Вы действительно не использовать их совсем по-другому, чем вы бы в C, хотя (в комментариях) они действуют совершенно по-разному. Objective-C также не является модифицированной версией C. Это все, что C, плюс больше. Так что на самом деле ничего не изменяет о С.

Этот синтаксис (для создания и доступа к значениям массива) также является относительно новым, для получения дополнительной информации вы можете посмотреть на documentation и this answer, что и наметить некоторые другие особенности Objective -C литералов.

+0

Это не может выглядеть иначе, чем простой массив в C, но на самом деле это очень много. Стоит отметить, что это все новый синтаксис. Кроме того, я бы предпочел что-то вроде 'float x [4] [4];' в большинстве случаев. –

+1

Довольно существенная разница. Один из них представляет собой массив с чередованием (массив объектов Objective C массивов), а другой - многомерный массив (C). Память укладывается совершенно по-другому. –

+0

Благодарим вас обоих, я (верю, что у меня) исправил ответ. Если вы хотите изменить что-либо, не стесняйтесь :) – Firo

Смежные вопросы