0

我正在创建一个时钟应用程序,其中有一个 ClockPunch NSManagedObject 模型,该模型具有表示打卡和打卡的属性。每个 ClockPunch 实例都与Employees 模型中的一个Employee 有关系(它也与每个punch 有一对多的关系)。我希望能够编写一个 NSPredicate 来为我提供员工最近打卡的信息。然后,我可以通过他们是否有匹配的打卡打卡来确定他们是打卡还是打卡。我不想把所有的拳头都拉进去然后对它们进行分类,因为每个员工可能有 1000 个。我该怎么办?

我的模型看起来像这样

Employees<->>ClockPunches
4

1 回答 1

0

我最近尝试了类似的东西。我试图找到最大日期的注册。

NSFetchRequest* request = [Registration fetchRequest];
NSExpression *date = [NSExpression expressionForKeyPath:@"time"];

NSExpression *maxDate = [NSExpression expressionForFunction:@"max:"
                                                  arguments:[NSArray arrayWithObject:date]];

NSExpressionDescription *d = [[[NSExpressionDescription alloc] init] autorelease];
[d setName:@"maxTime"];
[d setExpression:maxDate];
[d setExpressionResultType:NSDateAttributeType];
[request setPropertiesToFetch:[NSArray arrayWithObject:d]];

NSError *error = nil;
NSArray *objects = [Registration executeFetchRequest:request];
if (objects == nil) {
    // Handle the error.
} else {
    if (0 < [objects count]) {
        NSLog(@"Maximum date: %@", [[objects objectAtIndex:0] valueForKey:@"type"]);
    }
}

您可以在此页面上找到更多详细信息。https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFetching.html

然而,我仍然缺少的部分是如何只查看特定员工的注册......我尝试将请求设置为 NSPredicate 但不知何故它们不能一起使用。

注意:我使用 restkit 进行 coredata 访问,点击链接获取纯核心数据示例(只有一小部分代码不同)

于 2012-09-07T21:32:25.003 回答