显示使用日期对核心数据进行排序

时间:2011-10-07 06:42:52

标签: iphone objective-c ios core-data

我正在使用基于简单Iphone的应用程序。在该应用程序中,coredata用于存储数据。

我有两个字段。     一个字段是Mesage,其他字段是date.I想要获取最近10天内发送的消息。 我知道这个代码用于那个..但是如何实现这个?????

sortedArray = [unsortedArray sortedArrayUsingFunction:sortByStringDate context:NULL]

如何编写查询以及如何实现此...任何人都帮我实现这个......提前谢谢

2 个答案:

答案 0 :(得分:3)

如果要按该数组中对象的属性date对数组进行排序,可以编写这样的调用:

sortedArray = [unsortedArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]]];

答案 1 :(得分:2)

做这样的事情:

// Calculate NSDate for 10 days ago
NSDate *now = [NSDate date]; // get current date
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.day = -10;
NSDate *tenDaysAgo = [calendar dateByAddingComponents:dateComponents toDate:now options:0];
[dateComponents release];

// Create NSFetchRequest
NSFetchRequest *req = [[NSFetchRequest alloc] initWithEntityName:@"MyEntity"];
req.predicate = [NSPredicate predicateWithFormat:@"date >= %@", tenDaysAgo];
// Optionally add a sort descriptor too

// Execute fetch request
NSError *error = nil;
NSArray *results = [managedObjectContext executeFetchRequest:req error:&error];

如果这对您没有意义,请阅读Core Data Programming Guide中的NSFetchRequests和Predicates。