iphone - 如何按标题对充满 EKCalendars 的 NSArray 进行排序

标签 iphone objective-c ios

我有一个 NSArray,里面有一堆 EKCalendar 对象。我需要按字母顺序对它们进行排序。我是选择器的新手,但我想我需要类似的东西......

NSArray *array = [otherArray sortedArrayUsingSelector:@selector('localizedCaseInsensitiveCompare:title')];

干杯

最佳答案

你不能那样做。相反,请执行以下操作:

NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
    EKCalendar *cal1 = (EKCalendar *)obj1;
    EKCalendar *cal2 = (EKCalendar *)obj2;
    return [cal1.title localizedCaseInsensitiveCompare:cal2.title];
}];

编辑 - 解释:

-sortedArrayUsingComparator 采用必须返回 NSComparisonResult 的所谓“ block ”(内联函数)。所有艰苦的工作都已为您完成,因为您的 block 会针对建立正确顺序所需的尽可能多的对象对运行。然后,这一切所做的就是将每个对象类型转换为 EKCalendar,然后比较两个标题。您可以调整它以适用于任何类型的对象。

关于iphone - 如何按标题对充满 EKCalendars 的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527699/

相关文章:

ios - 使用 AutoLayout 的 UIScrollView 灵活布局

ios - 无法查看@synchronized如何与异步 block 一起使用

iphone - 当线程在保存时被杀死时,如何防止 NSManagedObjectContext 破坏数据库?

ios - 如何将 UIPickerView 选项连接到各个页面

objective-c - View Controller 委托(delegate)

objective-c - 带有 UIImage 的 UIBarButtonItem 始终着色 iOS 7

ios - + [NSString stringWithContentsOfFile :] performance

iphone - UIImagePNG表示和蒙版图像

iphone - 将多维数组中的图像加载到 UIImageView 中

ios - 从 C 调用 Obj-C 方法