#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. Что происходит сейчас, так это то, что вы нажимаете кнопку, чтобы принять этот ответ.