我已经在stackoverflow和其他资源上进行了相当多的搜索,找不到答案。
NSArray方法objectAtIndexedSubscript
和objectAtIndex
有什么区别?
或者,如果没有区别,为什么两者都存在?
在Apple Docs中表示它们“相同”。
我是编程新手,但是如果它们完全相同,那不是违反DRY原理吗?显然,苹果公司的家伙知道他们在做什么,但是如果他们相同,为什么都提供他们两个人呢?也许更好的问题是,为什么我要在另一个上使用?
最佳答案
它们是相同的。-objectAtIndex:
是您应该使用的方法。-objectAtIndexedSubscript:
是提供对obj-c下标的支持的方法。换句话说,如果您说array[3]
,则编译器将使用此方法。但是对于NSArray*
,它执行的操作与-objectAtIndex:
完全相同。之所以使用另一种方法,是因为其他类可以实现此目的以支持obj-c下标,而不必使用通用名称的-objectAtIndex:
。