Pregunta

Tengo una aplicación de datos básicos que trabaja para añadir o eliminar una de las muchas citas de un cliente con los botones de la envolvente en IB a mis citas ArrayController. El contenido de las citas se deriva de lo que Client está seleccionado en una lista de alimentación. Deseo usar un SegmentedControl, y por lo que pude ver, esto requiere que programáticamente añadir y eliminar los objetos en las citas. He arreglado para agregar una cita utilizando el código de Marcus Zarra de su libro de Datos Básicos de p54, pero estoy en una pérdida para eliminar una cita seleccionada. Estoy usando una celda de tabla personalizada, que sospecho que podría complicar las cosas.

En resumen, deseo de lograr programación el equivalente de quitar de un ArrayController:. Método en un objeto seleccionado

¿Alguien puede ayudar, por favor?

¿Fue útil?

Solución

Obtener la selección actual de usted ArrayController obligado a la interfaz de usuario

- (NSArray *)selectedObjects

eliminar esos objetos utilizando el contexto

-(void) deleteObject:(NSManagedObject*) object

Muestra:

NSArray* objectsToDelete = [NSArray arrayWithArray:[arrayController selectedObject]];
for (NSManagedObject* objectToDelete in objectsToDelete)
{
  [arrayController.managedObjectContext deleteObject:objectToDelete];
}

Otros consejos

Gracias, Martin. Mi código de tiempo se veía así.

-(IBAction) notesEditorSegClicked:(id)sender{
    int clickedSegment = [sender selectedSegment];
    switch (clickedSegment) {
        case 0:{ // add new object
            NSManagedObject *newNote = [NSEntityDescription
            insertNewObjectForEntityForName:@"Note"
            inManagedObjectContext:notes.managedObjectContext];
            [notes addObject:newNote];
            break;
        }
        case 1:{ // delete selected object
            NSArray *objectsToDelete = [notes selectedObjects];
            for (NSManagedObject* objectToDelete in objectsToDelete){
                [notes.managedObjectContext deleteObject:objectToDelete];
            }
            break;
        }
        case 2:{// close view
            [self loadClientSummary:sender];
            break;
        }
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top