Разница между objectAtIndexedSubscript и objectAtIndex
Я обыскал довольно бит в stackoverflow и других ресурсах, не могу найти ответ.
В чем разница между методами NSArray objectAtIndexedSubscript
и objectAtIndex
?
Или, если нет никакой разницы, почему оба существуют?
В Apple Docs говорится, что они "идентичны".
Я супер новичок в программировании, но если они идентичны, разве это не нарушает принцип DRY? Очевидно, ребята из Apple знают, что они делают, но почему они оба предоставляются, если они идентичны? Или, может быть, лучший вопрос: почему я должен использовать один над другим?
Ответы
Ответ 1
Они идентичны.
-objectAtIndex:
- метод, который вы должны использовать.
-objectAtIndexedSubscript:
- это метод, который обеспечивает поддержку индексов obj-c. Другими словами, этот метод используется компилятором, если вы говорите array[3]
. Но для NSArray*
он делает то же самое, что и -objectAtIndex:
. Причина, по которой это другой метод, - это то, что другие классы могут реализовать это, чтобы поддерживать индексы obj-c без использования универсального имени -objectAtIndex:
.