FirstApp iPhone: Adivinar el número - Parte 1
Martes, 23 de junio 2009La primera fuente que he pasado por las manos estaba escrito en Basic y consistía en unas pocas líneas de código, para iluminar mí. Era un juego simple que genera un número aleatorio entre 1 y 10 y, a través del teclado, asegúrese de que el número introducido se Maggioni, inferior o igual al número aleatorio. A pesar de su simplicidad de crudo sigue siendo, para mí, uno de los mejores ejemplos - sencillo, divertido y práctico - para explicar a alguien que no sabe nada acerca de la programación en realidad lo que se entiende por "programa de ordenador". Así que decidí que lo presente de nuevo para Apple iPhone, tal vez ayudar a alguien ...
En este post podemos lograr una versión particular de "Adivina el número" y llamó FirstApp. Más tarde, vuelva a escribir la misma aplicación con diferentes métodos, tales como la creación manual de un UIView o legados de Interface Builder.
La solicitud ya realizados, si sólo desea descargar, está disponible en el repositorio de Google Code:
1 - inicio
Abrir Xcode, seleccione Nuevo proyecto en el menú Archivo y escoja, para esta versión, desde la perspectiva clásica basada en la aplicación (la próxima vez que partimos de aplicaciones basado en Windows para obtener el mismo resultado). Llame a la FirstApp proyecto y guárdelo donde más le convenga más.

Como notará todavía estoy utilizando la versión de Xcode para SDK 2.2.1, ya que el SDK 3.0 son todavía "muy" estable. Tenga en mente esta imagen, porque con la nueva versión de Xcode Algunos templos no son idénticas y algunas cosas cambiarán. Sin embargo, por ahora no tiene que preocuparse por esto a menos que ya estaba utilizando la última versión de Xcode.
En esta versión vamos a utilizar Interface Builder, entonces, en primer lugar, vamos a diseñar nuestra interfaz de usuario. Vamos a abrir la carpeta de recursos y haga doble clic en FirstAppViewController.xib Este archivo se encuentra en el Interface Builder, como el archivo de MainWindow.xib (véase también la extensión del archivo X I NTERFAZ UILDER B).
Cualquier otro controlador se colocarán siempre en esta carpeta. Las carpetas restantes contienen todos los demás archivos de nuestra aplicación y, en particular, trabajamos mucho en los de la carpeta de clases.
Volviendo a Interface Builder nos enfrentamos a una pantalla en blanco que representa nuestra View el contenedor donde los objetos se colocan UIKit de nuestra interfaz de usuario. Este objeto visual que estamos buscando a través de Interface Builder se conecta al archivo de FirstAppViewController.m (elegidos por H) presente en la carpeta de las clases.
En la ventana de la biblioteca son todos los componentes visuales para crear interfaces estándar, agradable y accesible en nuestro iPhone de Apple.
Estos son convenientemente ordenados por categoría (ver la señal azul en la parte superior). Para la inclusión en nuestra opinión, sólo tiene que seleccionar el componente de fienstra Biblioteca y arrástrelo dentro de nuestra ventana de Vista, donde se colocan, cambiar el tamaño y configurar a voluntad (todas las cosas posibles, incluso por el código, como veremos en breve).
Antes de seguir adelante, si esta es la primera vez que trabajan con Interface Builder, disfrutar de un poco de pruebas "de los distintos componentes, y cuando se pone demasiado, asegúrate de que tienes algo así como la imagen se muestra a continuación, o un título hecho con componente de UINavigationBar un texto introductorio UILabel un campo de texto para introducir el número de adivinar UITextField y - finalmente - un simple botón UIButton para ver si han adivinado

El enfoque de los componentes de Interface Builder es a través de una ventana en particular siempre se divide en cuatro pestañas: atributos, conexiones, tamaño e identidad, una especie de "inspector" de los componentes. Dependiendo del componente seleccionado el cuadro de diálogo es la identidad configurada con las características apropiadas de sus componentes. Si se selecciona la UINavigationBar por ejemplo, tenemos todas las configuraciones posibles para este tipo de componente.

2 - Código
Ahora que hemos establecido y posicionar nuestros componentes visuales de la interfaz, vamos a escribir un pequeño código para manipularlos. En primer lugar abrimos el archivo FirstAppViewController.he vamos a ser como este:
- / /
- / / FirstAppViewController.h
- / / FirstApp
- / /
- / / Creado por Giovambattista Fazioli el 19/06/09.
- / / Copyright Saidmade Ltd. 2009. Todos los derechos reservados.
- / /
- # <UIKit/UIKit.h> De importación
- UIViewController { @ FirstAppViewController interfaz: UIViewController (
- IBOutlet UITextField * número;
- IBOutlet UIButton * button;
- numeroACaso int;
- )
- controllaNumero; - (IBAction) controllaNumero;
- @ End
Líneas 12, 13 y 14 define las "variables" de nuestro juego. Los dos primeros son punteros a los gráficos incluidos en el Interface Builder: el cuadro de texto y un botón. IBOutlet tipo davati, sirve para crear un vínculo, una referencia a la .xib de Interface Builder. De hecho, si quisiéramos crear nuestros franquiciados componentes a través de código, sin necesidad de utilizar el Interface Builder, simplemente retire la IBOutlet según el caso. Línea 17, sin embargo, define un método (un mensaje del evento), queremos dar la vuelta al hacer clic en el botón. En este archivo. H (archivo de cabecera) hemos realizado sólo definiciones. La aplicación del Código actual se encuentra en el archivo de consideración. M: FirstAppViewController.m Al hacer clic aquí CMD + ALT + flecha arriba pasa alternativamente de los autos de archivo. H. M. Por lo tanto, deberá editar FirstAppViewController.m En primer lugar eliminar los comentarios en viewDidLoad meotdo (33 ª línea en todo) y que se convierta en:
- / / Aplicar viewDidLoad hacer una configuración adicional después de cargar el punto de vista, normalmente de una pluma.
- ) viewDidLoad { - (Void) (viewDidLoad
- ; [ViewDidLoad Super];
- arc4random ( ) % 10 ; numeroACaso = 1 + arc4random ()% 10;
- , numeroACaso ) ; NSLog (@ "% d Número de pensamiento," numeroACaso);
- )
viewDidLoad es uno de los métodos que se invoca cuando se inicia la aplicación. Si usted desea hacer coincidir un poco "a la document onload JavaScript o $(document).ready() para jQuery. Las líneas he añadido son las 5 y 6. El 5, en particular, crea un número aleatorio entre 1 y 10! El número de la línea 6, sin embargo, es sólo para la depuración y la impresión en la consola número generado. Ahora escriba el código (el impementazione) de la controllaNumero() método controllaNumero() que definimos en el archivo FirstAppViewController.h
- controllaNumero { - (IBAction) (controllaNumero
- ) ; NSLog (@ "push-control de botón numérico");
- numero.text integerValue ] ; numeroInserito int = [integerValor numero.text];
- , numeroInserito ) ; NSLog (@ "El número introducido es% d", numeroInserito);
- numeroInserito <numeroACaso ) { if (numeroInserito <numeroACaso) (
- ; @ Message = "demasiado bajo ..."
- ( numeroInserito> numeroACaso ) { ) Else if (numeroInserito> numeroACaso) (
- ; @ Message = "demasiado alto ..."
- ( numeroInserito == numeroACaso ) { ) Else if (numeroInserito == numeroACaso) (
- ; mensaje = @ "Bravo, lo has adivinado;
- arc4random ( ) % 10 ; numeroACaso = 1 + arc4random ()% 10;
- , numeroACaso ) ; NSLog (@ "% d Número de pensamiento," numeroACaso);
- )
- UIAlertView alloc ] initWithTitle : @ "Responso" message : message delegate : nil cancelButtonTitle : @ "OK" otherButtonTitles : nil ] ; UIAlertView * alertMessaggio = [[UIAlertView alloc] initWithTitle: @ "Respuesta" mensaje: delegado mensaje: cancelButtonTitle cero: @ "OK" otherButtonTitles: nil];
- ; [Mostrar AlertMessaggio];
- ; [Liberación AlertMessaggio];
- ; numero.text @ = "";
- )
Este código, la última de escribir antes de volver a Interface Builder, podemos definir como el corazón del sistema, o mejor del juego. Para ello se produce si el número introducido en el texto UITextField es menor que, mayor o igual al número de "pensamiento" de nuestro iPhone. Dependiendo de los resultados muestra una alerta. Línea 2, como siempre, es sólo para depuración y liberación en la consola un mensaje cuando se hace clic. Línea 4, sin embargo, es interesante, este se transforma el contenido textual de nuestro campo de texto a un número entero. Esto es necesario para comparar el numeroACaso número al azar con el número introducido por el usuario. En Objective-C, como en C, no hay conversiones de tipo implícito, al igual que otros lenguajes de alto nivel que no admiten variables tipizazzione en sentido estricto. En algunos idiomas, de hecho, usted puede comparar cadenas y enteros sin realizar ninguna conversión o la conversión explícita.
Línea 5 prepara un puntero a un message de cadena que contendrá la respuesta a la pantalla nell'alert. Las líneas 9 a 17 el número de control introducidos por el usuario con el número aleatorio y extraer las conclusiones necesarias. A propósito insertan estos if brutal para dejar completamente claro el código. Alternativamente se puede utilizar:
- numeroInserito - numeroACaso ) <0 ) ? - 1 : ( ( numeroInserito - numeroACaso ) ? 1 : 0 ) ; decisión int = ((numeroInserito - numeroACaso) <0)? - 1: ((numeroInserito - numeroACaso)? 1: 0);
- decisione ) { switch (la decisión) (
- 1 : casas - 1:
- ; @ Message = "demasiado bajo ..."
- break;
- : case 1:
- ; @ Message = "demasiado alto ..."
- break;
- : case 0:
- ; mensaje = @ "Bravo, lo has adivinado;
- / / Start de nuevo ...
- arc4random ( ) % 10 ; numeroACaso = 1 + arc4random ()% 10;
- , numeroACaso ) ; NSLog (@ "% d Número de pensamiento," numeroACaso);
- break;
- )
Nos unimos a la cola con Interface Builder
Volvamos ahora a Interface Builder, haga clic en el archivo siempre FirstAppViewController.xib Lo que hacemos ahora permiten vincular la interfaz visual hecho con Interface Builder y el código que hemos escrito, especialmente con los componentes de relieve con IBOutlet Los componentes que debemos relacionar nuestro código es el cuadro de texto y un botón, tal como se define en la interfaz de archivo de definición de FirstAppViewController.h A éstas se había nombrado, respectivamente, numero y de bottone De Interface Builder, tenemos varias maneras de vincular los elementos visuales con el código, uno de los más simple es hacer clic con el botón derecho del ratón sobre nuestro componente visual, como campo de texto UITextField

Esta ventana es diferente para cada componente, nos muestra todo lo que podemos "enlace" con el código. En particular, estamos interesados en la última entrada, la sección de referencias Outlets: Nueva Referencia de salida. Haga clic en el "círculo" a la derecha y - manteniendo pulsado el botón del ratón - princiaple arrastre la ventana FirstAppViewController.xib en el icono de FirstAppViewController Propietario (archivo):

Al soltar el botón del ratón aparecerá un menú con una lista de todas las "variables" (propiedades) IBOutlet y se define como UITextField

En nuestro caso, numero Repita el mismo procedimiento para el botón, y añadió que éste también había definido un evento: - (IBAction) controllaNumero; Finalmente otteremo:

Conclusiones
Si has hecho todo correctamente, hemos terminado! Nuestro juego está listo. En caso de que usted puede descargar el código fuente completo aquí. Obviamente, este es solo un ejemplo y faltan algunos detalles para hacer una aplicación real, los iconos de 57x57 añadido a los controles sobre el número y otros detalles todavía. El proceso de desarrollo descrito aquí puede ser variada, por ejemplo a través de Interface Builder, una vez, es decir al final: antes de escribir todo el código y luego ir sobre el Interface Builder para vincular los objetos. En este ejemplo nos hemos movido con rapidez en el Interface Builder para diseñar el esquema de nuestra interfaz, ya que la simple aplicación.
La próxima vez vamos a ver cómo implementar el medisimo "jugar" sin el uso de Interface Builder.













No hay ningún comentario para este post
Deja tu comentario