objectAtIndexedSubscript和objectAtIndex之间的区别

时间:2013-01-30 20:56:31

标签: ios cocoa-touch nsarray

我在stackoverflow和其他资源上搜索了一下,找不到答案。

NSArray方法objectAtIndexedSubscriptobjectAtIndex之间有什么区别?

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

Apple Docs中,它表示“相同”。

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

1 个答案:

答案 0 :(得分:32)

它们完全相同。

-objectAtIndex:是您应该使用的方法。

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