Desarrollo de IOS-Patrón de paso de mensajes-Objetivo-Operación
La función principal es enviar un mensaje a un objeto cuando sucede algo. Normalmente, cuando hacemos clic en un botón o deslizamos una barra de progreso, enviamos un mensaje al objetivo. Por ejemplo, cuando tenemos hambre, le decimos a nuestro cerebro que busque algo para comer.
La llamada al método de la acción objetivo es muy sencilla y suele implementar una función:
El objetivo es el propósito Si usamos el ejemplo anterior como metáfora, es nuestro cerebro. .
Una acción es una acción. La analogía con el ejemplo anterior es la acción de buscar algo para comer.
Un evento es un evento, como tener hambre o sed, que es una condición para iniciar una acción.
¿Qué esperas hacer aquí al agregar un evento de clic al UIButton? .
De esta manera, el evento presionado se puede agregar a targetBtn. Cuando el usuario presiona el botón, el botón se lo indicará y llamará al método targetBtnClicked:.
UIControlEvents son principalmente condiciones de activación de eventos.
El modo de acción objetivo suele implementarse mediante etiquetas.
La etiqueta es un entero sin signo y todos los controles UIKit tienen esta propiedad. Puede agregar el valor de la etiqueta al configurar el control y puede obtener el remitente en la acción del evento de respuesta, de modo que pueda pasar el valor obteniendo la etiqueta del remitente.
Agregar una etiqueta:
Obtener el valor de la etiqueta en la actividad:
La etiqueta solo puede pasar un número plástico, lo cual tiene grandes limitaciones. Por lo general, es posible que necesitemos pasar algunos datos complejos durante el desarrollo, por lo que las etiquetas están muy apretadas en este momento.
Entonces podemos agregar un diccionario de información agregando una categoría a la clase principal para pasar el mensaje.
Agregar una categoría:
Utilice el tiempo de ejecución para implementar el método getter y el método setter de información;
Establezca el valor de la información cuando utilice:
Obtenga valor en información:
Aquí somos una extensión de NSObject. Después de escribir esta extensión, solo necesitamos introducir el archivo de encabezado cuando usamos controles que heredan clases de NSObject:
Puedes pasar este valor como quieras.
Poner una demostración al final] (/rshinich/MessagePassing).
Esta es sólo la primera parte del enfoque de mensajería en iOS. Esta forma de pasar valores utiliza el tiempo de ejecución, lo que significa que la información está disponible para todas las subclases de NSObject, por lo que generalmente no se recomienda. Si normalmente desea entregar datos complejos, puede hacerlo mediante otros métodos, como proxies y bloques.
Este artículo es sólo para estudio personal. Si hay algún problema, espero que todos me critiquen y corrijan.