Supprimer une row et les entités reliées dans une tableView

IBimiIBimi Membre
juillet 2013 modifié dans Apple Developer Programs #1

Bonjour,


 


J'ai une entité "Coache" reliée à  4 autres entités. J'ai une relation inverse pour chaque entité et mon "Delete rule" est sélectionné sur cascade donc en théorie quand j'efface un objet de ma table Coache tout les objets reliés à  cette entité doivent se supprimer également.


Le fait est que quand je clique sur Edit dans mon tableView seul l'objet de la table Coache est effacé.


Voici ma méthode pour supprimer mes éléments dans mon tableView.



- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        managedObjectContext = [_fetchedResultsController managedObjectContext];
[managedObjectContext deleteObject:[_fetchedResultsController objectAtIndexPath:indexPath]];
[refreshArray removeObject:[_fetchedResultsController objectAtIndexPath:indexPath]];
        
NSError *error = nil;
    
        [managedObjectContext save:&error];
if (![managedObjectContext save:&error]) {
 
NSLog(@error %@, %@", error, [error userInfo]);
exit(-1);
}
}
    [self.tableView reloadData];
}

L'objet s'efface bien et aucune erreur n'est jetée.


J'ai reloadé mon datamodel, vérifié mes relations mais les autres entités ne semblent pas répondre à  la suppression.


Savez-vous peut-être d'où provient le problème?


 


Merci


Réponses

  • Tes règles de suppressions sont bien :


     


    Coache.entitesA --->> EntiteA.coache : Delete cascade


    EntiteA.coache ---> Coache.entitesA : Nullify


     


    ?


     


    De plus pourquoi as-tu du save consécutif du managed object context ?

  • Oui mes relations sont bien en Nullify comme ci-dessous


     


    Coache --> Address --> Country  (Delete rule: Cascade - Cascade - Nullify)


    Coache --> Measure --> Poids (Delete rule: Cascade - Cascade - Nullify)


    Coache --> Test --> ResultTest  (Delete rule: Cascade - Cascade - Nullify)


    Coache --> Telephone (Delete rule: Cascade - Nullify)


     


    J'ai retiré ma double sauvegarde de mon managedObjectContext, vérifié mes "delete rule" mais la suppression ne s'effectue toujours que dans l'entité Coache.


    Une idée?


     


    Merci

  • Mes relations n'étaient pas remplies donc aucun lien entre mes entités donc impossible de supprimer en cascade.


    Merci à  vous!


Connectez-vous ou Inscrivez-vous pour répondre.