0

コア データ エンティティがありMediaAssetます。中央サーバーUploadAttemptにアップロードするために行ったすべての試行を追跡する別の呼び出しがあります。最初の で並べ替えられたデータストアからMediaAssetを取得したいと思います。MediaAssetUploadAttempt

MediaAssetには 3 つUploadAttemptの s、A、B、CUploadAttemptがあります。attemptDate 属性があり、各 MediaAsset の最も早い UploadAttempt を見つけて、それを並べ替えとして使用したいと考えています。

次の行に沿って NSSortDescriptor を作成したいと思います。

order by MediaAsset.uploadAttempts.attemptDateここで、attemptDate は、その特定の MediaAsset の最も早い AttemptDate です。

それは理にかなっていますか?どんな助けでも大歓迎です。

(注: MediaAsset に追加の属性を追加できないと仮定します。これは既に存在するデータであり、変更することはできません。)

4

1 に答える 1

0

あなたの質問を正しく理解していれば、次のように動作するはずです。そうでない場合は、もう一度 ping を送信してください。一緒に理解して修正します。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"UploadAttempt" 
 inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entityDesc];
NSError *error = nil;


NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" 
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];    

[fetchRequest setSortDescriptors:sortDescriptors];

NSArray *dateSortedAttempts = [self.managedObjectContext executeFetchRequest:fetchRequest  
error:&error];

NSSet* mediaAssets= [NSSet setWithArray:[items valueForKeyPath:@"@distinctUnionOfObjects.MediaAsset"]];
于 2013-10-24T03:54:56.833 に答える