NSExpressionDescription与Core Data内存存储器引发的异常

时间:2013-10-10 16:22:31

标签: ios core-data ios7 nsfetchrequest

我使用此NSExpressionDescription获取属性date_modified的最大值:

NSFetchRequest *dateModifiedFR = [[NSFetchRequest alloc] initWithEntityName:@"MyEntity"];
dateModifiedFR.resultType = NSDictionaryResultType;

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"date_modified"];
NSExpression *maxDateExpression = [NSExpression expressionForFunction:@"max:" arguments:@[keyPathExpression]];

NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
[expressionDescription setName:@"maxDate"];
[expressionDescription setExpression:maxDateExpression];
[expressionDescription setExpressionResultType:NSDateAttributeType];
dateModifiedFR.propertiesToFetch = @[expressionDescription];

NSError *error = nil;
NSArray *resultDictionaries = [moc executeFetchRequest:dateModifiedFR error:&error];
NSDate *maxDate = [[resultDictionaries firstObject] valueForKey:@"maxDate"];

只要我使用SQLite商店,这在iOS 7下运行正常。但是现在我想使用内存存储运行我的单元测试来运行此代码并执行此获取请求抛出:'NSInvalidArgumentException', reason: '-[__NSDate count]: unrecognized selector sent to instance 0xa01b410'

我知道在这种情况下还有其他方法可以获得最大值,但我很好奇这个获取请求有什么问题,或者为什么它无法在内存存储中运行。

1 个答案:

答案 0 :(得分:1)

看起来这实际上是一个错误。我已经向Apple提交了一个雷达。