objectAtIndexedSubscript和objectAtIndex之间的区别

Jos*_*nce 20 cocoa-touch nsarray ios

我已经搜索了stackoverflow和其他资源,找不到答案.

有什么方法的NSArray之间的差异objectAtIndexedSubscriptobjectAtIndex

或者,如果没有差异,为什么两者都存在?

Apple Docs中,它说它们"相同".

我是编程的新手,但如果他们是相同的,那是不是打破了DRY原则?显然,Apple的人都知道他们在做什么,但为什么如果他们是相同的话他们都提供了?或者更好的问题是,我为什么要使用另一个呢?

Lil*_*ard 32

它们完全相同.

-objectAtIndex: 是你应该使用的方法.

-objectAtIndexedSubscript:是为obj-c下标提供支持的方法.换句话说,如果你说,这个方法就是编译器使用的方法array[3].但是因为NSArray*它完全相同-objectAtIndex:.它是一个不同的方法的原因是其他类可以实现这一点,以支持obj-c下标而不必使用通用命名-objectAtIndex:.

  • 谢谢@ kevin-ballard.我在这里找到了关于[obj-c下标](http://clang.llvm.org/docs/ObjectiveCLiterals.html)的更多信息,感谢您提及. (2认同)