Поддержка NSArray, как в C++ (странный пример кода)

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

Он использовал NSArray как массив указателей C++.

self.myArray = [NSArray arrayWithObjects:@"object1",@"object2",@"object3",nil];
NSString *object1 = self.myArray[0];
NSString *object2 = self.myArray[1];

Теперь, хотя это действительно работает, я не могу найти ссылку на это.

Я также не нашел ни одного примера его использования.

Кто-нибудь знает, почему это работает. Или может привести меня к некоторой документации по использованию.

Я понятия не имел, что вы можете использовать NSArray как старый массив С++ ??


person The Lazy Coder    schedule 18.12.2012    source источник
comment
Обратите внимание, что вы также можете объявить self.myArray= @[ @object1,@object2,@object3]; Подобный синтаксис также используется для словарей и чисел.   -  person Ramy Al Zuhouri    schedule 18.12.2012
comment
Я думаю, это то, что Apple добавила в Objective-C вместе с литералами массивов.   -  person TheAmateurProgrammer    schedule 18.12.2012
comment
Кстати, Xcode может преобразовать код в современный синтаксис.   -  person    schedule 18.12.2012
comment
есть ли кнопка быстрого рефакторинга для нового синтаксиса или это 6 месяцев работы?   -  person The Lazy Coder    schedule 18.12.2012
comment
Это опция в разделе Edit->Refactor.   -  person Phillip Mills    schedule 18.12.2012
comment
См. меню Xcode Правка => Рефакторинг   -  person    schedule 18.12.2012
comment
Отлично. Я благодарен, что есть сообщество StackOverflow. Я отдал все голоса, какие только мог, за всю вашу коллективную помощь. Еще раз спасибо :)   -  person The Lazy Coder    schedule 18.12.2012


Ответы (1)


Эта ссылка показывает пример доступа по индексу, хотя это не совсем об этом. Я новичок в Objective C, так что именно вас удивляет?

Изменить: вы правы, этот синтаксис выглядит как недавнее изменение с XCode 4.5 — прокрутите примерно до половины.

person Karthik T    schedule 18.12.2012
comment
каждый пример, который я видел, использует -[NSArray objectAtIndex:] я даже не думал использовать его как обычный массив. Мне интересно, если его законное использование. или если это просто происходит в правильном порядке. - person The Lazy Coder; 18.12.2012
comment
@VolureDarkAngel Вы правы, это новое, вы можете взглянуть на мою правку - person Karthik T; 18.12.2012
comment
здорово. Большое спасибо. Я проверил это. Я искал некоторую информацию о том, когда и откуда это на самом деле произошло. И был удивлен, что это действительно работает. Еще раз спасибо за инфу. Я добавлю это в свой список кодов A-OK. Меня просто пугает, когда какой-нибудь новый разработчик ios придумывает что-то, чего я никогда не видел. - person The Lazy Coder; 18.12.2012
comment
Это называется Array Subscripting, для дальнейшего справки. - person CodaFi; 18.12.2012