我有一系列自定义对象,其中包含日期和收入。该对象名为Game
。
我使用compare
对对象数组进行了排序:
- (NSArray*)sortByDate:(NSArray*)objects
{
NSArray *sorted = [objects sortedArrayUsingComparator:^(id firstObject, id secondObject) {
Game *firstGameObject = (Game*)firstObject;
Game *secondGameObject = (Game*)secondObject;
return [(NSDate*)firstGameObject.date compare:(NSDate*)secondGameObject.date];
}];
return sorted;
}
我想按日期对它们进行排序,然后将它们设置为UITableView
按月和年划分(2013年4月,2015年10月等等)
我尝试将日期排序为MMMM YYYY
格式,但是它们在数组中以错误的顺序添加。
- (NSArray*)getSectionsTitles:(NSArray*)objects
{
NSMutableSet *mutableSet = [[NSMutableSet alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [NSLocale currentLocale];
dateFormatter.timeZone = calendar.timeZone;
[dateFormatter setDateFormat:@"MMMM YYYY"];
for (Game *game in objects)
{
NSString *sectionHeading = [dateFormatter stringFromDate:game.date];
[mutableSet addObject:sectionHeading];
}
return mutableSet.allObjects;
}
答案 0 :(得分:1)
请使用contactsArrayList
,NSMutableArray
不维护订单。你可以这样做。
// Game.h
NSMutableSet
//你的viewcontroller或一些helperservice
#import <Foundation/Foundation.h>
@interface Game : NSObject
@property (nonatomic, strong) NSDate *beginDate;
@property (nonatomic, assign) NSInteger revenue;
@end