1

我试图找出如何通过我的 CoreData 信息并找到在 NSTimeInterval 内具有 createdAt(我的对象的一部分作为 NSDate)的对象。我该如何设置?

我查看了以下文档:http: //developer.apple.com/documentation/Cocoa/Conceptual/Predicates/predicates.html

但我在那里找不到任何东西。

我需要创建两个时间戳并使用 SQL 的 BETWEEN 吗?

任何帮助都会很棒。

4

1 回答 1

0

首先,检查 NSDate 是否在 NSTimeInterval 内是没有意义的,因为 NSTimeInterval 只是指定时间长度,而不是它的位置。相反,您想使用两个单独的 NSDates 指定间隔的开始和结束。

这是它的样子(beginningTime 和 endTime 是 NSDates)。

NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"YourEntityName" inManagedObjectContext:yourContext];
NSPredicate *beginningPredicate = [NSPredicate predicateWithFormat:@"createdAt >= %@", beginningTime];
NSPredicate *endPredicate = [NSPredicate predicateWithFormat:@"createdAt <= %@", endTime];
request.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:beginningPredicate, endPredicate, nil]];
NSArray *results = [yourContext executeFetchRequest:request error:NULL];
于 2011-10-30T20:38:01.720 回答