gpt4 book ai didi

iphone - 作为获取谓词的日期范围 - Core Data 之间的 NSDate 谓词

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:12 24 4
gpt4 key购买 nike

我正在尝试获取存储在 Core Data 中的核心数据项,该数据项已过滤到字段 eventStartDate 下的日期范围,该字段是 Date 类型 - 我正在使用 Xcode 生成的名为 Event 的托管对象来代理核心数据项。当我执行获取请求时,没有任何返回。我试着查看 SQL 日志,发现正在调用以下 SQL,看起来是正确的:

SELECT 0, t0.Z_PK FROM ZEVENT t0 WHERE ( t0.ZEVENTSTARTDATE > ? AND  t0.ZEVENTSTARTDATE <= ?) ORDER BY t0.ZEVENTSTARTDATE

我什么也没得到,当我尝试 po [mgtEventArray count] 时,我在对象上得到了 nil。

我的获取代码:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit ) fromDate:[NSDate date]];
NSDate *startDate = [calendar dateFromComponents:components];
[components setMonth:10];
[components setDay:0];
[components setYear:0];
NSDate *endDate = [calendar dateByAddingComponents:components toDate:startDate options:0];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"((eventStartDate > %@) AND (eventStartDate <= %@))",startDate,endDate];


NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];

[fetchRequest setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortDescKey ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];

NSError *error = nil;
NSArray *mgtEventArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if(error != nil)
NSLog(@"%@", error);
return mgtEventArray;

最佳答案

这看起来很像您的变量 startDateendDate 将包含意外值。 startDate 来自没有日期等的日期组件,endDate 来自 startDate

因此,我建议在谓词定义之前放置断点或 NSLog 语句以检查这些值。

此外,不清楚您使用的是什么NSCalendar。来自documentation :

Day, week, weekday, month, and year numbers are generally 1-based, but there may be calendar-specific exceptions.

所以看起来例如将 day 属性设置为 0 可能会出现问题。

关于iphone - 作为获取谓词的日期范围 - Core Data 之间的 NSDate 谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7865938/

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