我和这个问题有同样的问题,但@davedelong 的答案对我不起作用。
遵循Apple 示例时,为了获取一组对象中的最小日期,我收到以下错误
-[NSDate count]: unrecognized selector sent to instance
我的理解是NSExpression
's max: only support NSArray
s. 所以我需要另一个解决方案。
@davedelong 建议使用升序NSSortDescriptor
,所以我这样做了:
NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.entity = [NSEntityDescription entityForName:NSStringFromClass([GCSession class])
inManagedObjectContext:self.objectContext];
fetchRequest.fetchLimit = 1;
NSSortDescriptor* sort = [[NSSortDescriptor alloc] initWithKey:@"startDate" ascending:YES];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:sort];
GCSession* session = [[self.objectContext executeFetchRequest:fetchRequest error:nil] lastObject];
return session.startDate;
这里的问题是session
从 fetch 返回的对象似乎不是具有最小startDate
. 在我的测试中,它似乎甚至返回了最新的日期,但似乎并不一致。
我还可以获取每个GCSession
对象并对其进行排序,但这似乎有点过头了,尤其是GCSession
当用户使用应用程序时数量会增加。
编辑:一个测试项目,演示 Apple 示例代码中的错误。