Подтвердить что ты не робот

Разница между objectAtIndexedSubscript и objectAtIndex

Я обыскал довольно бит в stackoverflow и других ресурсах, не могу найти ответ.

В чем разница между методами NSArray objectAtIndexedSubscript и objectAtIndex?

Или, если нет никакой разницы, почему оба существуют?

В Apple Docs говорится, что они "идентичны".

Я супер новичок в программировании, но если они идентичны, разве это не нарушает принцип DRY? Очевидно, ребята из Apple знают, что они делают, но почему они оба предоставляются, если они идентичны? Или, может быть, лучший вопрос: почему я должен использовать один над другим?

4b9b3361

Ответ 1

Они идентичны.

-objectAtIndex: - метод, который вы должны использовать.

-objectAtIndexedSubscript: - это метод, который обеспечивает поддержку индексов obj-c. Другими словами, этот метод используется компилятором, если вы говорите array[3]. Но для NSArray* он делает то же самое, что и -objectAtIndex:. Причина, по которой это другой метод, - это то, что другие классы могут реализовать это, чтобы поддерживать индексы obj-c без использования универсального имени -objectAtIndex:.