sortUsingSelector メソッドを使用して配列を文字列オブジェクトでソートするいくつかの異なるプログラムを読んでいますが、それらがどのように行うのかわかりません。
各プログラムは、次のように sort メソッドを定義することから始めます。
[myBook sort]; /**myBook is the name of the array in the addressBook class**/
-(void) sort
{
[book sortUsingSelector: @selector (compareNames:)];
}
/**compareNames is defined in the addressCard class**/
sort メソッドは、すべての作業を行うように見えるセレクター メソッドを使用します。
-(NSComparisonResult) compareNames: (AddressCard *) element
{
return [name compare: element.name];
}
addressCard と addressBook という 2 つの異なるクラスがあることに注意してください。
compare メソッドが NSOrderedAscending、NSOrderedSame、または NSOrderedDescending を sortUsingSelector メソッドに返すことはわかっています。しかし、これらのメソッドはどのようにしてすべてをソートするのでしょうか? 何か大きなものを失った気がします。たとえば、compare メソッドは配列内のどの要素を比較するかをどのように判断するのでしょうか? 配列の要素 [0] が要素 [1] と比較され、並べ替えが行われ、次の要素が比較されると想像します...比較メソッドには、私が見落としているデフォルトの定義がありますか?