Données de base: erreur Keypath introuvable dans l'entité & lt; NSSQLEntity Studies id = 3 & gt;
Pouvait-on me dire quel est le problème avec ce code? Il déclenche l'erreur suivante et de provoquer un crash:
reason: 'keypath Studies.patients.PatientName not found in entity <NSSQLEntity Studies id=3>'
Code:
- (void)viewDidLoad {
[super viewDidLoad];
test_coredataAppDelegate *appDelegate = (test_coredataAppDelegate *)[[UIApplication sharedApplication] delegate];
self.context = appDelegate.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Studies" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
/**/
NSLog(patientName);
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:
@"(Studies.patients.PatientName == %@ )",patientName]];
NSError *error;
self.StudiessList = [_context executeFetchRequest:fetchRequest error:&error];
self.title = @"patients";
[fetchRequest release];
}
source d'informationauteur Ali
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, depuis votre chercher de l'entité est
Studies
vous n'avez pas l'inclure dans le prédicat, car laStudies
les objets sont ceux qui reçoivent le prédicat test dans la première place. Si votre prédicat doit être d'au moins juste:Toutefois, par convention,
patients
serait le signe d'une à plusieurs relations. Si oui, cela signifie que la valeur réelle depatients
est un ensemble de (probablement)Patient
objets. En tant que tel, vous ne pouvez pas demander à un ensemble pour une valeur d'attribut comme ci-dessus: la Place, vous devez demander un nouvel ensemble de tous les objets dans le jeu qui correspond au prédicat. Utilisez l'une ou de la totalité de l'opérateur comme suit:Je voudrais ajouter que, par convention, tous les attributs et les relations noms commencent par des lettres minuscules, donc si
PatientName
est un attribut qu'il devrait êtrepatientName
.Soit les Études de l'entité ne dispose pas d'un patient de la propriété, ou quelle que soit l'entité patients relation des points pour ne pas avoir un PatientName bien (attention aux majuscules/minuscules), ou les deux.