chercher coredata relation

Je voudrais savoir comment aller chercher les objects de ma coredata. Je suppose que ce devrait être un dictionary ou des arrays ou quelque chose qui est returnné afin que vous puissiez avoir votre un à plusieurs choses.

Je suis tout à fait perdu à ce que je sais écrire / lire des objects uniques, mais cette relation est un peu confuse.

Je pense avoir réussi à écrire une relation avec Coredata, mais maintenant je voudrais pouvoir la lire pour voir si je l'ai bien. J'ai commencé à écrire la méthode pour cela, mais je n'ai aucune idée de ce que je dois faire pour get l'information sur.

c'est le code que j'ai jusqu'ici .. pour lire et écrire

- (void)writeFin:(NSArray *)recivedProjectData ItemsData:(NSArray *)itemsData { // WRITE TO CORE DATA NSManagedObjectContext *context = [self managedObjectContext]; for (NSDictionary *dict in recivedProjectData) { project = [NSEntityDescription insertNewObjectForEntityForName:@"Project" inManagedObjectContext:context]; project.proNumber = [dict valueForKey:@"ProNumber"]; project.projectDescription = [dict valueForKey:@"Description"]; // project.items = [dict valueForKey:@""]; // this is the relationship for project } for (NSDictionary *dict in itemsData) { items = [NSEntityDescription insertNewObjectForEntityForName:@"Items" inManagedObjectContext:context]; items.Number = [dict valueForKey:@"Number"]; items.Description = [dict valueForKey:@"Description"]; items.comment = [dict valueForKey:@"Comment"]; items.project = project; // this is the relationship for items [project addItemsObject:items]; } NSError *error = nil; if (![__managedObjectContext save:&error]) { NSLog(@"There was an error! %@", error); } else { NSLog(@"created"); } } - (NSMutableArray *)readFin { NSManagedObjectContext *context = [self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:context]; [fetchRequest setEntity:entity]; NSError *error; NSMutableArray *projectDictionaryArray = [[NSMutableArray alloc] init]; NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; for (ProjectList *projectList in fetchedObjects) { NSMutableDictionary *tempProjectDictionaryArray = [[ NSMutableDictionary alloc] init]; [tempProjectDictionaryArray setObject:project.proNumber forKey:@"ProNumber"]; [tempProjectDictionaryArray setObject:project.description forKey:@"Description"]; [tempProjectDictionaryArray setObject:project.projectID forKey:@"ProjectID"]; [projectDictionaryArray addObject:tempProjectDictionaryArray]; } return projectDictionaryArray; } 

Donc, juste réitérer, je voudrais savoir A, est-ce que ma méthode d'écriture semble bien? B, comment allez-vous lire / lire les objects de relation à partir des données de base.

toute aide serait grandement appréciée.

Une relation dans Core Data n'est pas un object, c'est une propriété qui correspond à un autre object de votre model plutôt qu'une simple impasse. Vous êtes déjà là pour vérifier si vos relations sont correctes pour autant que je puisse voir – ce que vous devez faire est d'append une ligne supplémentaire dans votre list de projets

 [tempProjectDictionaryArray setObject: project.items forKey:@"items"]; 

l'object que vous aurez ajouté sera un NSSet. Vous pouvez ensuite vérifier que les choses sont comme elles le devraient avec une boucle comme celle-ci après avoir fini de configurer les choses

 NSSet itemsForProject = projectDictionaryArray[someIndex][@"items"] for (Item* currItem in [itemsForProject allObjects]) { //access some property of the current item to make sure you have the right ones -- \ description for example NSLog(@"%@", item.description); }