gpt4 book ai didi

iphone - 带有 NSdate 谓词的 NSFetchrequest

转载 作者:行者123 更新时间:2023-11-28 19:08:07 25 4
gpt4 key购买 nike

我有一个 entity其中包含带有 NSDate (format yyyy-MM-dd) 的对象现在我想做一个 fetch request只有具有 NSDate 的对象今天的。所以我正在做以下事情。

 NSDate *now = [NSDate new];
RKManagedObjectStore *store = [[DominoDataModel sharedDataModel] objectStore];
NSManagedObjectContext *context = store.mainQueueManagedObjectContext;

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"eve_date = %@",now];
fetchRequest.predicate = predicate;
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"eve_date" ascending:YES];
fetchRequest.sortDescriptors = @[descriptor];
NSArray *matches = [context executeFetchRequest:fetchRequest error:nil];
arrConcerten = [matches mutableCopy];
NSLog(@"matches %@",matches);

我的 NSLog始终不返回任何匹配项。

有人可以帮我解决这个问题吗?

编辑

我的实体包含这样的 NSDates:

2013/08/29
2013/08/30
2013/09/02
2013/09/15
2013/09/28

我以为我可以将这些 NSDates 与今天的日期进行比较?但这可能不起作用,因为我实体中的 NSDates 没有时间戳?

最佳答案

您的日期是一个时间戳,还包含秒等。您需要的是一个“介于”谓词。

NSPredicate *subPredFrom = [NSPredicate predicateWithFormat:@"eve_date >= %@ ", dateFrom];
[subpredicates addObject:subPredTo];

NSPredicate *subPredTo = [NSPredicate predicateWithFormat:@"eve_date < %@", dateTo];
[subpredicates addObject:subPredFrom];

其中 dateTo 是第二天的 00:00,dateFrom 是请求的那一天的 00:00 ;) 要得到它,你必须使用 NSDateComponents

NSDateComponents *components = [calendar components:NSYearCalendarUnit| NSMonthCalendarUnit| NSWeekCalendarUnit| [NSDayCalendarUnit fromDate:now];
NSDate *today = [calendar dateFromComponents:components];
[components setDay:components.day+1]; //
NSDate *tomorrow = [calendar dateFromComponents:components];

关于iphone - 带有 NSdate 谓词的 NSFetchrequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18439519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com