Сначала создайте базовый объект данных, который имеет: userSearchTerm и userSearchDate. И создавайте записи каждый раз, когда выполняется поиск.
Запустите код, объявив запрос на выборку.
И используйте NSPredicate
для фильтрации по дате:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"UserSearches" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *nameFilter = [NSPredicate predicateWithFormat:@"(userSearchDate like[cd] %@) AND (userSearchTerm like[cd] %@)",weekName,termToFind];
[fetchRequest setPredicate:nameFilter];
[cd] в фильтре like указывает, что он не чувствителен к регистру. Вам также может понадобиться изменить этот фильтр в зависимости от даты и формата, который вы хотите использовать
Затем установите fetchResultType как NSDictionaryResultType
:
[fetchRequest setResultType:NSDictionaryResultType];
Это вернет словарь, который вы можете использовать.
Чтобы использовать агрегатные функции, вам нужно использовать NSExpressionDescription
Это обширный код, и я не могу его правильно протестировать, но вы можете прочитать его здесь. В разделе Выборка определенных значений описано, как выполнять агрегатные функции:
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/CoreData/Articles/cdFetching.html
Для получения справки по всем доступным агрегатным функциям для NSExpression
перейдите к функции expressionForFunction: arguments: , где находится список.