21

私はstackoverflowやその他のリソースをかなり検索しましたが、答えが見つかりません。

objectAtIndexedSubscriptNSArrayメソッドとの違いは何objectAtIndexですか?

または、違いがない場合、なぜ両方が存在するのですか?

Apple Docsには、「同一」であると記載されています 。

私はプログラミングに非常に慣れていませんが、それらが同一である場合、それはDRYの原則を破っていませんか?明らかに、Appleの人たちは彼らが何をしているのか知っていますが、彼らが同一であるのに、なぜ彼らは両方とも提供されるのでしょうか?あるいは、もっと良い質問は、なぜ一方を他方の上に使用する必要があるのか​​ということです。

4

1 に答える 1

34

それらは同一です。

-objectAtIndex:使用する必要がある方法です。

-objectAtIndexedSubscript:obj-c添え字のサポートを提供するメソッドです。言い換えれば、このメソッドは、コンパイラがと言う場合に使用するものですarray[3]。しかし、NSArray*それはとまったく同じことをし-objectAtIndex:ます。これが別のメソッドである理由は、他のクラスが一般的な名前のを使用せずにobj-c添え字をサポートするためにこれを実装できるようにするため-objectAtIndex:です。

于 2013-01-30T21:03:09.083 に答える