2009-12-11 4 views
0

J'ai un NSArraycontroller qui est lié au managedObjectContext de l'application de mon application. Il agit comme une file d'attente de téléchargement. Les éléments sont ajoutés au programme NSArraycontroller par programmeLes objets supprimés de NSArraycontroller restent dans la table jusqu'à ce que cliqués

J'ai une table qui montre deux des champs dans ceci, chacun une colonne avec sa valeur liée individuellement au dit NSArraycontroller. Lorsqu'un nouveau téléchargement est démarré, il est supprimé par programme du NSArraycontroller.

J'ai ajouté un bouton pour supprimer les téléchargements de la file d'attente avant qu'ils ne commencent, le bouton est lié à l'action remove de NSArraycontroller qui devrait supprimer l'élément sélectionné dans la table. Mon problème est que lorsque vous cliquez sur le bouton Supprimer, l'élément sélectionné n'est pas supprimé de la table, il reste là jusqu'à ce que vous cliquiez sur une autre entrée de la table. La sélection de la ligne où se trouvait l'élément entraîne sa sélection tant que le bouton de la souris est maintenu enfoncé, comme s'il était toujours là, mais sans valeurs.

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

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

J'ai lié l'attribut activé du bouton Supprimer à canRemove du NSArraycontroller et cela fonctionne correctement.

J'ai une étiquette qui montre le nombre d'éléments dans la file d'attente, ceci est lié à NSArraycontroller, arrangedObjects, @count. Cela fonctionne correctement lors de l'ajout d'éléments, mais pas lors de leur suppression.

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

Répondre

0

J'ai rencontré le même problème lorsque j'ai essayé d'utiliser NSFetchRequest avec NSManagedObjectIDResultType, puis j'ai essayé de supprimer les résultats avec - [NSManagedObjectContext deleteObject:]. Solution: n'utilisez pas NSManagedObjectIDResultType pour une requête NSFetchRequest si vous envisagez de supprimer les objets renvoyés.

0

J'ai juste eu un problème similaire. Il s'avère que _setUnprocessedDeletion__: est une méthode définie pour NSManagedObject, et apparemment son message est envoyé à un objet quand il est retiré d'un contrôleur de tableau qui est en mode entité. C'était mon problème. après un jour de gros remodelage, je me suis retrouvé avec un contrôleur de tableau en mode entité, dont le contenu était lié à un tableau d'objets réguliers au lieu d'objets gérés. Une de ces erreurs s'est produite chaque fois que j'ai supprimé un objet. Regardez le contentArray de votre contrôleur de tableau.

Questions connexes