我试图找出如何通过我的 CoreData 信息并找到在 NSTimeInterval 内具有 createdAt(我的对象的一部分作为 NSDate)的对象。我该如何设置?
我查看了以下文档:http: //developer.apple.com/documentation/Cocoa/Conceptual/Predicates/predicates.html
但我在那里找不到任何东西。
我需要创建两个时间戳并使用 SQL 的 BETWEEN 吗?
任何帮助都会很棒。
我试图找出如何通过我的 CoreData 信息并找到在 NSTimeInterval 内具有 createdAt(我的对象的一部分作为 NSDate)的对象。我该如何设置?
我查看了以下文档:http: //developer.apple.com/documentation/Cocoa/Conceptual/Predicates/predicates.html
但我在那里找不到任何东西。
我需要创建两个时间戳并使用 SQL 的 BETWEEN 吗?
任何帮助都会很棒。
首先,检查 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];