我在stackoverflow和其他资源上搜索了一下,找不到答案。
NSArray方法objectAtIndexedSubscript
和objectAtIndex
之间有什么区别?
或者,如果没有差异,为什么两者都存在?
在Apple Docs中,它表示“相同”。
我是编程的新手,但如果它们完全相同,那是不是打破了DRY原则?显然,Apple的人都知道他们在做什么,但为什么如果他们是相同的话他们都提供了?或者更好的问题是,我为什么要使用另一个?
答案 0 :(得分:32)
它们完全相同。
-objectAtIndex:
是您应该使用的方法。
-objectAtIndexedSubscript:
是为obj-c下标提供支持的方法。换句话说,如果你说array[3]
,这个方法就是编译器使用的方法。但是对于NSArray*
,它与-objectAtIndex:
完全相同。它是一个不同的方法的原因是其他类可以实现这一点,以支持obj-c下标,而不必使用通用名称-objectAtIndex:
。