我一直在阅读一些使用sortUsingSelector方法对字符串对象排序数组的不同程序,我无法弄清楚它们是如何实现的。排序数组细分
每个程序首先定义如下排序方法:
[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**/
的排序方法使用似乎做所有的工作选择法:
-(NSComparisonResult) compareNames: (AddressCard *) element
{
return [name compare: element.name];
}
其重要的注意,是两个不同的类:addressCard和addressBook。
我知道比较方法返回NSOrderedAscending,NSOrderedSame或NSOrderedDescending到sortUsingSelector方法。但是,这些方法如何去分类一切?我觉得我错过了一些巨大的东西。例如,比较方法如何知道数组中的哪些元素进行比较?我想象数组的元素[0]与元素[1]进行比较,然后进行排序,然后比较下一个元素...比较方法是否具有我忽略的默认定义?
“重要的是要注意有两个不同的类:addressCard和addressBook”。不,就这个例子而言,这里涉及的唯一类是NSMutableArray和NSString。我们正在对一串字符串进行排序。琴弦来自何处,而阵列所在的地方并不重要。 – matt