【发布时间】:2013-01-10 02:14:02
【问题描述】:
我希望在 UITableView 中为每个唯一日期创建一个部分。
我的数据被格式化为一个对象数组,每个对象都包含一个NSDate。
最初,我使用 dateFormatter @"yyyy-MM-dd" 将每个日期转换为字符串,并相应地比较日期字符串。但这很慢,而且似乎是错误的方式。
我还尝试使用以下方法从NSDate 中删除时间:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: trip.startTime];
[components setHour: 0];
[components setMinute: 0];
[components setSecond: 0];
NSDate *newDate = [gregorian dateFromComponents: components];
但是在使用数组函数时:
[allDays indexOfObject:newDate]
我从来没有遇到过重复日期的比赛。有没有人知道如何干净地做到这一点?
【问题讨论】:
-
如果您可以封装日期,并且需要订购,请覆盖
compare:并使用 NSSet 快速唯一化。
标签: ios objective-c uitableview nsdate