Pregunta

Tengo una NSArrayController que está obligado a managedObjectContext de AppDelegate de mi solicitud. Actúa como una cola de descarga. Los productos que se añaden a la programación NSArrayController

Tengo una tabla que muestra dos de los campos de esta, cada una columna con su valor unido individualmente a la dicha NSArrayController. Cuando se inicia una nueva descarga se elimina mediante programación desde el NSArrayController.

He añadido un botón para eliminar las descargas de la cola antes de que comiencen, el botón está obligado a eliminar de la NSArrayController:. Acción que debería quitar el elemento seleccionado en la tabla

Mi problema es que cuando se hace clic en el botón Eliminar el elemento seleccionado no se eliminan de la tabla, permanece allí hasta que se pulse otra entrada en la tabla. Selección de la fila en la que el elemento se hace que se puede seleccionar mientras el botón del ratón se mantiene presionado, como si todavía está allí, pero sin valores.

En la consola de la siguiente aparece cuando se hace clic en el botón de eliminación: -[NSCFDictionary _setUnprocessedDeletion__:]: unrecognized selector sent to instance 0x2000f2220

Si quito los elementos de la tabla mediante programación [[downloadsArray content] removeObjectAtIndex:0]; [downloadsTable reloadData]; [downloadsTable deselectAll:nil]; parece que funciona bien, excepto sigo teniendo el elemento invisible dejado atrás que puede ser seleccionado y permanece seleccionado sólo cuando el botón del ratón está presionado.

He atado atributo enabled del botón Quitar para canRemove del NSArrayController y esto funciona correctamente.

I tienen una etiqueta que muestra el número de elementos de la cola, esto está obligado a NSArrayController, arrangedObjects, @count. Esto funciona correctamente al agregar elementos, pero no cuando la eliminación de ellos.

¿Alguna idea sobre lo que estoy haciendo mal sería muy apreciada.

¿Fue útil?

Solución

Yo tenía el mismo problema cuando traté de usar un NSFetchRequest con NSManagedObjectIDResultType, y luego trató de eliminar los resultados con - [NSManagedObjectContext deleteObject:].

Solución:. NSManagedObjectIDResultType no uso para un NSFetchRequest si va a eliminar la devolución de los objetos

Otros consejos

Sólo tenía un problema similar. Resulta que _setUnprocessedDeletion__: es un método definido para NSManagedObject, y aparentemente su mensaje se envía a un objeto cuando se retira de un controlador de array que se establece en el modo de Entidad. Ese fue mi problema; después de un día de remodelación pesada que terminó con un controlador de array establecido en el modo de entidad, cuyo contenido fue unido a una matriz de objetos regulares en lugar de objetos gestionados. Uno de estos errores se produjeron cuando me quita un objeto. Mira el contentArray de su controlador de matriz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top