我正在读一本关于 Objective-C 的书。处理地址簿中的数组排序的部分。排序方法是这样的:
- (void) sort
{
[book sortUsingSelector: @selector(compareNames:);
}
'compareNames' 方法是这样的:
//Compare the two names from the specified address cards
-(NSComparisonResult) compareNames: (id) element
{
return [name compare: [element name]];
}
我有点明白它是如何工作的。通过将数组的每个元素与下一个元素进行比较,直到所有“名称”按字母顺序交换。
我没有得到(因为前面没有提到)是“(id)元素”参数的来源?我得到的“名称”是因为之前已初始化。但“元素”从何而来?那是 NSArray 附带的固定对象吗?前面描述了如何通过例如 NSLogging nummer[1] 打印元素。在此地址簿的情况下,该簿中的一个元素或卡片可以由 NSLogging book[32] 打印。但是“元素”如何适应呢?