Tengo problemas para entender el concepto de cómo el iPhone se ocupa de los eventos. ¡Ayuda! Los delegados también me confunden. ¿Le importaría a alguien explicar, por favor?terminología del objetivo C: puntos de venta y delegados
Respuesta
Las salidas (en Interface Builder) son variables miembro de una clase donde los objetos del diseñador se asignan cuando se cargan en tiempo de ejecución. La macro IBOutlet
(que es #define
vacía) indica a Interface Builder que la reconozca como una salida para mostrar en el diseñador.
Por ejemplo, si arrastro a cabo un botón, a continuación, conectarlo a la toma de aButton
(definido en mi interfaz .h), la carga del archivo en tiempo de ejecución SEMILLA asignará aButton
el puntero a esa instancia por el UIButton
PUNTA.
@interface MyViewController : UIViewController {
UIButton *aButton;
}
@property(nonatomic, retain) IBOutlet UIButton *aButton;
@end
Luego, en la puesta en práctica:
@implementation MyViewController
@synthesize aButton; // Generate -aButton and -setAButton: messages
-(void)viewDidAppear {
[aButton setText:@"Do Not Push. No, seriously!"];
}
@end
Esto elimina la necesidad de escribir código para crear una instancia y asignar los objetos GUI en tiempo de ejecución.
cuanto a Delegados, son objetos de eventos que recibe utilizados por otro objeto (por lo general una clase API generalizada como una vista de tabla). No hay nada inherentemente especial sobre ellos. Es más un patrón de diseño. La clase delegado podrá definir varios de los mensajes esperados tales como:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
... y el objeto API llama a este mensaje en el delegado cuando se quiere notificará del evento. Por ejemplo:
-(void)update:(double)time {
if (completed) {
[delegate process:self didComplete:totalTimeTaken];
}
}
y el delegado define el mensaje:
-(void)process:(Process *)process didComplete:(double)totalTimeTaken {
NSString *log = [NSString stringWithFormat:@"Process completed in %2.2f seconds.", totalTimeTaken];
NSLog(log);
}
Tal uso podría ser:
Process *proc = [Process new];
[proc setDelegate:taskLogger];
[proc performTask:someTask];
// Output:
// "Process completed in 21.23 seconds."
Entonces, los delegados son en realidad versiones glorificadas de lo que otros lenguajes como Javascript o Python interpretan como devoluciones de llamada, ¿correcto? – SexyBeast
Un delegado es un objeto que otro objeto puede reenviar mensajes a. En otras palabras, es como cuando tu mamá te dijo que limpiaras tu habitación y le perdonaste a tu hermanito. Tu hermanito sabe cómo hacer el trabajo (ya que eras demasiado perezoso para aprender) y lo hace por ti.
¡Qué maravillosa comparación didáctica! –
¿Por qué mamá no le preguntó directamente al hermano pequeño? – super9
- 1. Objetivo C: Delegados múltiples
- 2. Múltiples delegados en el objetivo C
- 3. C# Delegados y método firmas
- 4. Ajuste del objetivo C en el objetivo C++/C++
- 5. OOP Terminología: "Contenedor" y "Colección"
- 6. Mezcla C y objetivo-C
- 7. Terminología del compilador de Fortran: Variables ficticias y atributos
- 8. rareza del compilador C# con delegados constructores
- 9. el futuro del objetivo c?
- 10. Eventos y delegados. ¿Qué patrón de diseño?
- 11. delegados estándar en C#
- 12. Terminología del montón de Java: ¿generaciones jóvenes, viejas y permanentes?
- 13. Delegados Fast C++
- 14. Comparación de caracteres Unicode del objetivo C
- 15. Objetivo C NSStack y NSQueue?
- 16. El objetivo principal de eventos en C#
- 17. delegados anónimos en C#
- 18. Delegados en C#
- 19. delegados opcionales en C#
- 20. por qué y dónde utilizar un delegado en el objetivo c
- 21. Delegados de predicados en C#
- 22. delegados en C# y punteros FNC en C++
- 23. Terminología al inicializar estructuras en C
- 24. ¿Cierres en los delegados del controlador de eventos C#?
- 25. ¿Cuál es la diferencia entre C++, objetivo-c y objetivo-C++?
- 26. terminología mixin
- 27. Espacios de nombre y objetivo C
- 28. Objetivo C Estructuras y administración de memoria
- 29. Protocolos y delegados para Dummies
- 30. prepareForSegue y delegados
tratando de ser un imbécil pero ¿ha leído los documentos introductorios en developer.apple.com? Es solo que la pregunta tomaría un ensayo para responder. Tal vez formule una pregunta más detallada sobre lo que le está colgando. –
La documentación que Apple proporciona en la Guía de conceptos básicos de Cocoa en los puntos de venta: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/uid/ TP40002974-CH7-SW3 y delegados: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/uid/TP40002974-CH7-SW18 parece bastante completo para mí. –
@Brad - No soy una persona de documentación. – Moshe