私はこの質問と同じ問題を抱えていますが、@ davedelongの答えはうまくいきません。
Apple Exampleに従うと、オブジェクトのセットで最小の日付を取得するために、次のエラーが発生します
-[NSDate count]: unrecognized selector sent to instance
私の理解では、それはNSExpression
最大です: のみをサポートしNSArray
ます。だから私は別の解決策が必要です。
@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
、フェッチから返されたオブジェクトが、最小のオブジェクトではないように見えることstartDate
です。私のテストでは、最新の日付も返されたようですが、一貫していないようです。
すべてのオブジェクトを取得してGCSession
並べ替えることもできますが、これはやり過ぎのように思えます。特にGCSession
、ユーザーがアプリケーションを使用するときに数が増えることになります。
編集: Apple のサンプル コードのバグを示すテスト プロジェクト。