Il semble que vous vous y prenez mal. Si j'étais vous, j'essayerais de supprimer l'objet, puis de le réinsérer avec la bonne clé de section. Donc, si votre NSManagedObject a une clé de section de 1, vous devrez stocker les valeurs des objets localement pendant que vous supprimez l'objet. Ensuite, vous pouvez créer un nouvel enregistrement avec les valeurs stockées et mettre à jour la clé de section à 0.
Ceci devrait enlever l'ancienne cellule et en insérer une nouvelle dans une nouvelle section.
Voir ci-dessous -
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
NSManagedObject *obj = [_fetchedResultsController objectAtIndexPath:indexPath];
NSString *name = obj.name;
[self.managedObjectContext deleteObject:task];
NSError *error = nil;
[self.managedObjectContext save:&error];
NSManagedObject *newObj = [NSEntityDescription insertNewObjectForEntityForName:@"entityName" inManagedObjectContext:self.managedObjectContext];
[newObj setValue:name forKey:@"name"];
[self.managedObjectContext newObj];
error = nil;
[self.managedObjectContext save:&error];
}
Merci pour cela, il semble un moyen évident d'y aller, et il fonctionne bien! –
Cela ne me semble pas une bonne solution. Si vous avez un contrôleur de résultats récupéré utilisant le paramètre 'sectionNameKeyPath:' pour regrouper les résultats en sections, alors quelque chose comme '[obj setValue: @ (nouveauSectionNumber) forKey: @" sectionNombre "]' devrait être suffisant pour déplacer l'objet vers un section différente automatiquement. –