0

我有Entity一个动作为的事件Attribute。该操作NSString将保存到我的 iOS 应用程序中每个事件的核心数据中。event.action 将始终是预定义的字符串,例如。“工作”“家”“午餐”

我如何使用它NSPredicate来检索最后 5 个操作并给我执行最多的操作?

有没有关于使用 NSPredicate 的好教程?

4

1 回答 1

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
}

请给我一个反馈,所以我知道发生了什么,所以我可以编辑代码来帮助你:)。

感谢以下参考: 使用核心数据与 NSPredicate 和 NSDate 为 NSFetchedResultsController 动态设置 fetchLimit http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html#//apple_ref /doc/uid/TP40001794-CJBDBHCB

于 2012-11-15T15:49:48.557 回答