Domanda

Ho un NSArrayController che non mancherà di managedObjectContext di AppDelegate di mia applicazione. Esso agisce come una coda di download. Gli articoli sono aggiunti al NSArrayController programmazione

Ho una tabella che mostra due dei campi di questa, ciascuna una colonna con il suo valore vincolato individualmente alla detta NSArrayController. Quando un nuovo download è iniziato a livello di codice viene rimosso dal NSArrayController.

Ho aggiunto un pulsante per rimuovere download dalla coda prima di iniziare, il pulsante è tenuto a rimuovere del NSArrayController:. Azione che dovrebbe rimuovere l'elemento selezionato nella tabella

Il mio problema è che quando si fa clic sul pulsante Rimuovi l'elemento selezionato non viene rimosso dalla tabella, vi rimane fino a quando clic su un altro voce nella tabella. Selezione della riga in cui l'elemento è stato induce a essere selezionato, mentre il pulsante del mouse viene tenuto premuto, come se fosse ancora lì, ma senza valori.

Nella console quando il pulsante di rimozione viene cliccato appare il seguente: -[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220

Se a rimuovere elementi dalla tabella di programmazione utilizzando [[downloadsArray content] removeObjectAtIndex:0]; [downloadsTable reloadData]; [downloadsTable deselectAll:nil]; sembra funzionare bene, tranne ho ancora ottenere l'oggetto invisibile lasciato alle spalle che può essere selezionato e rimane selezionato solo quando il pulsante del mouse è premuto.

Ho legato attributo enabled del pulsante Rimuovi per CanRemove del NSArrayController e questo funziona correttamente.

Ho un'etichetta che indica il numero di elementi nella coda, questo è destinato a NSArrayController, arrangedObjects, @count. Questo funziona correttamente quando l'aggiunta di elementi, ma non quando la loro rimozione.

Tutte le idee su quello che sto facendo di sbagliato sarebbe molto apprezzato.

È stato utile?

Soluzione

Ho avuto lo stesso problema quando ho cercato di utilizzare un NSFetchRequest con NSManagedObjectIDResultType, e poi ha cercato di eliminare i risultati con - [NSManagedObjectContext DeleteObject:].

. Soluzione: Non utilizzare NSManagedObjectIDResultType per un NSFetchRequest se avete intenzione di eliminare gli oggetti restituiti

Altri suggerimenti

Ho appena avuto un problema simile. Risulta che _setUnprocessedDeletion__: è un metodo definito per NSManagedObject, e apparentemente il suo messaggio viene inviato a un oggetto quando viene rimosso da un controller di array che è impostata sulla modalità entità. Questo è stato il mio problema; dopo una giornata di ristrutturazione pesante ho finito con un controller di array impostato sulla modalità di entità, il cui contenuto era destinato a un array di oggetti regolare invece di oggetti gestiti. Uno di questi errori si è verificato quando ho rimosso un oggetto. Guardate la contentArray del controller di array.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top