我正在使用基于简单Iphone的应用程序。在该应用程序中,coredata用于存储数据。
我有两个字段。 一个字段是Mesage,其他字段是date.I想要获取最近10天内发送的消息。 我知道这个代码用于那个..但是如何实现这个?????
sortedArray = [unsortedArray sortedArrayUsingFunction:sortByStringDate context:NULL]
如何编写查询以及如何实现此...任何人都帮我实现这个......提前谢谢
答案 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。