показать, чтобы отсортировать основные данные по дате

#iphone #objective-c #ios #core-data

#iPhone #objective-c #iOS #core-data

Вопрос:

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

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

 sortedArray = [unsortedArray sortedArrayUsingFunction:sortByStringDate context:NULL]
  

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

Ответ №1:

Если вы хотите отсортировать массив по свойству 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:amp;error];
  

Если это не имеет смысла для вас, тогда прочитайте о NSFetchRequests и предикатах в руководстве по программированию Core Data.

Комментарии:

1. Что происходит сейчас, так это то, что вы нажимаете кнопку, чтобы принять этот ответ.