Core データには、3 種類のエンティティがあります。エンティティ A、エンティティ B、エンティティ C
エンティティ C からエンティティ A への関係は、1 対多の関係です。エンティティ C からエンティティ B への関係も、1 対多の関係です。
つまり、A と B の両方にinRecord
、エンティティ C の単一のインスタンスを指すフィールドがあります。
次のコードがあります
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"EntityA"];
request.predicate = [NSPredicate predicateWithFormat:@"inRecord.title = %@", title];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
NSArray *arrayOfEntity = [context executeFetchRequest:request error:&error];
arrayOfEntity[0] のクラスを確認すると、クラス EntityA であると表示されます。しかし、まったく同じコードで、上記の EntityA を EntityB に置き換えた場合、arrayOfEntity[0] のクラスを確認すると、EntityA ではなく、クラス NSManagedObject と表示されます。
何故ですか?