アレクサンダー、
これらのエンティティが互いに関連していない場合は、データを取得するために別のフェッチ リクエストを実行する必要があります。
したがって、たとえば、Message
次のようなリクエストで最新の設定を取得できます。
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"senderEmail == %@", grabbedEmail];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"insertionDate" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
NSFetchRequest *messageFetch = [[NSFetchRequest alloc] init];
[messageFetch setEntity:[NSEntityDescription entityForName:@"Message" inManagedObjectContext:yourContext]];
[messageFetch setPredicate:predicate];
[messageFetch setSortDescriptors:sortDescriptors];
[messageFetch setFetchLimit:1];
grabbedEmail
(持っていない場合)を取得するには、特定の述語を使用してリクエストを設定する必要があります。受信者の電子メールにも同じことが適用できます。例えば。
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"userId == %@", @"someUserId"];
NSFetchRequest* userFetch = [[NSFetchRequest alloc] init];
[userFetch setEntity:[NSEntityDescription entityForName:@"User" inManagedObjectContext:yourContext]];
[userFetch setPredicate:predicate];
[userFetch setFetchLimit:1];
NSArray* userResults = [userFetch executeFetchRequest:&error];
User* retrievedUser = (User*)[userResults objectAtIndex:0];
NSString* grabbedEmail = [retrievedUser email];
日付で並べ替えるには、日付で並べ替えることができる(タイプの)Message
という属性をエンティティに追加するだけです。insertionDate
NSDate
リクエストを実行すると
NSArray* results = [messageFetch executeFetchRequest:&error];
配列には、探しているresults
(唯一の)要素が含まれます。Message
これらのエンティティを別々に維持する必要があるのはなぜですか?
それが役立つことを願っています。