2012-11-15 3 views
0

У меня есть событие Entity с действием Attribute. Действие - это NSString, который сохраняется в основных данных для каждого события в приложении iOS. Событие.action всегда будет предопределенной строкой, например .. «Работа» «Главная» «Обед»NSPredicate count number of NSString

Как я могу использовать NSPredicate, чтобы получить последние 5 действий и дать мне действие, которое было выполнено больше всего?

Есть ли хорошие учебники по использованию NSPredicate?

+0

Я до сих пор найти решение не сдаться – piam

ответ

1

Не могли бы вы, пожалуйста, попробуйте следующее, надежда на руководство аренды вы :)

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" 
     inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", @[@"Work", @"Home", @"Lunch"]]; //contain your actions 

[request setPredicate:predicate]; 
request.fetchLimit = 5;// retrieve the last 5 actions 
NSError *error; 
NSArray *yourActions = [managedObjectContext executeFetchRequest:request error:&error]; 

for (Event *event in yourActions) 
{ 
    // find the action that was perform the most in last 5 actions 
} 

пожалуйста, дайте мне обратную связь, так что я знаю, что произошло, так что я могу изменить код, чтобы помочь вам :) ,

спасибо за следующие ссылки: Using Core Data with NSPredicate and NSDate Dynamically setting fetchLimit for NSFetchedResultsController http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html#//apple_ref/doc/uid/TP40001794-CJBDBHCB

+0

Привет спасибо, что указал мне в правильном направлении –

+0

приветствую :) – piam