2011-10-07 66 views
0

我很喜欢简单的基于iphone的apllication。在该应用程序coredata是用于存储数据。显示排序coredata与日期

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

sortedArray = [unsortedArray sortedArrayUsingFunction:sortByStringDate context:NULL] 

如何编写一个查询以及如何实现这个...任何人帮助我实现这个.....先感谢

回答

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。

+0

非常感谢....................那很好工作 – sai

+0

非常感谢................... – sai

+2

现在发生的事情是,你点击按钮接受这个答案。 –

3

如果你想通过在物体的属性date排序数组数组你可以写这样的电话:

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

k ....那么如何识别过去30天? – sai

+0

创建新的获取请求模板。提取对象时:加载并设置合适的日期。 – Nekto