Les objets retirés de NSArrayController restent dans le tableau jusqu'à ce que vous cliquez dessus

StackOverflow https://stackoverflow.com/questions/1888780

Question

J'ai un NSArrayController qui est lié à managedObjectContext de AppDelegate de ma demande. Il agit comme une file d'attente de téléchargement. Les articles sont ajoutés au NSArrayController programme

I ai une table qui montre deux des champs de cela, chaque colonne avec sa valeur liée individuellement à la ladite NSArrayController. Quand un nouveau téléchargement est lancé, il est retiré de la programmation NSArrayController.

J'ai ajouté un bouton pour supprimer les téléchargements de la file d'attente avant de commencer, le bouton est lié à la supprimer du NSArrayController:. L'action qui devrait supprimer l'élément sélectionné dans le tableau

Mon problème est que lorsque vous cliquez sur le bouton Supprimer le il y reste l'élément sélectionné ne se retire pas de la table, jusqu'à cliquant sur une autre entrée dans la table. Sélection de la ligne où l'élément a été l'amène à être sélectionnée lorsque le bouton de la souris est maintenu enfoncé, comme si elle est toujours là, mais sans valeurs.

Dans la console qui suit apparaît lorsque le bouton est cliqué: -[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220

Si je supprimer des éléments de la table par programmation [[downloadsArray content] removeObjectAtIndex:0]; [downloadsTable reloadData]; [downloadsTable deselectAll:nil]; il semble fonctionner très bien, sauf que je reçois toujours l'élément invisible laissé derrière qui peut être sélectionné et reste sélectionnée que lorsque le bouton de la souris est vers le bas.

Je suis lié l'attribut de bouton supprimer permis de canRemove du NSArrayController et cela fonctionne correctement.

I ont une étiquette qui indique le nombre d'articles dans la file d'attente, cela est lié à NSArrayController, arrangedObjects, @count. Cela fonctionne correctement lorsque l'ajout d'éléments, mais pas quand les supprimer.

Toutes les idées sur ce que je fais mal serait très apprécié.

Était-ce utile?

La solution

J'ai eu le même problème quand j'ai essayé d'utiliser un NSFetchRequest avec NSManagedObjectIDResultType, puis essayé de supprimer les résultats avec - [NSManagedObjectContext deleteObject:].

Solution:. NSManagedObjectIDResultType pour ne pas user un NSFetchRequest si vous prévoyez de supprimer les objets retournés

Autres conseils

Je viens d'avoir un problème similaire. Il se trouve que _setUnprocessedDeletion__: est une méthode définie pour NSManagedObject, et apparemment son message est envoyé à un objet lorsqu'il est retiré à partir d'un contrôleur de réseau qui est réglé sur le mode d'entité. C'était mon problème; après une journée de remodelage lourds je me suis retrouvé avec un contrôleur RAID réglé en mode entité, dont le contenu a été lié à un tableau d'objets réguliers au lieu d'objets gérés. L'une de ces erreurs se sont produites à chaque fois que je l'ai enlevé un objet. Regardez le contentArray de votre contrôleur RAID.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top