Frage

Ich habe eine NSArrayController die zu meiner Anwendung AppDelegate dem managedObjectContext gebunden ist. Es fungiert als Download-Warteschlange. Die Artikel werden hinzugefügt, um die NSArrayController programmatisch

Ich habe eine Tabelle, die zwei der Felder in dieser zeigt, die jeweils eine Spalte mit seinem Wert individuell auf die dem genannten NSArrayController gebunden. Wenn ein neuer Download gestartet wird programmatisch von dem NSArrayController entfernt wird.

Ich habe eine Schaltfläche entfernen Downloads aus der Warteschlange hinzugefügt, bevor sie beginnen, wird die Taste, um das Entfernen des NSArrayController gebunden. Aktion, die das ausgewählte Element in der Tabelle entfernen sollte

Mein Problem ist, dass, wenn auf die Schaltfläche Entfernen das ausgewählte Element aus der Tabelle entfernt bekommen hat, klicken nicht, es bleibt dort, bis einen weiteren Eintrag in der Tabelle klicken. Die Auswahl der Zeile, in der das Element wurde bewirkt, dass es ausgewählt werden, während die Maustaste gedrückt gehalten wird, als ob es immer noch da, aber ohne Werte.

In der Konsole erscheint die folgende, wenn die Schaltfläche Entfernen geklickt wird: -[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220

Wenn ich entfernen Sie Elemente aus der Tabelle programmatisch mit [[downloadsArray content] removeObjectAtIndex:0]; [downloadsTable reloadData]; [downloadsTable deselectAll:nil]; es scheint gut zu funktionieren, außer ich noch den unsichtbaren Punkt dahinter links bekommen kann ausgewählt werden und bleibt nur gewählt, wenn die Maustaste gedrückt ist.

Ich habe gebunden auf die Schaltfläche Entfernen der enabled-Attribut zu canRemove des NSArrayController und das funktioniert richtig.

Ich habe ein Label, das die Anzahl der Elemente in der Warteschlange zeigt, dies zu NSArrayController, arrangedObjects, @count gebunden ist. Das funktioniert richtig, wenn Elemente hinzugefügt, aber nicht, wenn sie zu entfernen.

Alle Ideen, was ich falsch mache sehr geschätzt würde.

War es hilfreich?

Lösung

Ich hatte das gleiche Problem, wenn ich versuchte, eine NSFetchRequest mit NSManagedObjectIDResultType zu verwenden, und dann versucht, die Ergebnisse mit löschen - [NSManagedObjectContext deleteObject:].

. Lösung: Dont NSManagedObjectIDResultType für eine NSFetchRequest verwenden, wenn Sie die Objekte zurückgegeben löschen planen

Andere Tipps

Ich hatte gerade ein ähnliches Problem. Es stellt sich heraus, dass _setUnprocessedDeletion__: Ein Verfahren zur NSManagedObject definiert ist, und anscheinend seine Nachricht an ein Objekt gesendet wird, wenn es von einem Array-Controller entfernt wird, dem Entity-Modus eingestellt ist. Das war mein Problem; nach einem Tag der schweren Umbau endete ich mit einem Array-Controller auf Entity-Modus auf, dessen Inhalt auf eine Reihe von regelmäßigen Objekte anstelle von verwalteten Objekte gebunden war. Einer dieser Fehler aufgetreten ist, wenn ich ein Objekt entfernt. Schauen Sie sich die contentArray Ihrer Array-Controller.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top