核心数据 - 具有时间范围的NSPredicate格式(NSTimeInterval)

时间:2009-07-08 16:00:36

标签: sqlite nsdate

我正在尝试查找如何查看我的CoreData信息,并找到在NSTimeInterval中具有createdAt(我的对象的一部分作为NSDate)的对象。我该如何设置?

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

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

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

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

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

这就是它的样子(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];
相关问题