показать сортировать coredata с датой - PullRequest
0 голосов
/ 07 октября 2011

Я использую приложение на базе простого Iphone. В этом приложении coredata используется для хранения данных.

У меня есть два поля.одно поле - это сообщение, а другое - дата. Я хочу получить сообщение, отправленное в течение последних 10 дней.Я знаю, что этот код используется для этого ... но как реализовать это ?????

sortedArray = [unsortedArray sortedArrayUsingFunction:sortByStringDate context:NULL]

, как написать запрос и как это реализовать ... Кто-нибудь, помогите мне реализовать это..... Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 07 октября 2011

Если вы хотите отсортировать массив по свойству date объектов в этом массиве, вы можете написать такой вызов:

sortedArray = [unsortedArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES]]];
2 голосов
/ 07 октября 2011

Сделайте что-то вроде этого:

// 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];

Если это не имеет смысла для вас, прочитайте о NSFetchRequest и Predicates в Базовом руководстве по программированию данных .

...