A primeira fonte que me levantei minhas mãos foi escrito em Basic e consistia de algumas linhas de código, para iluminar-me. Foi um jogo simples que gera um número aleatório de 1 a 10 e, através da entrada de teclado, verifique se o número digitado foi Maggioni, menor ou igual ao número aleatório. Apesar de sua simplicidade áspera permanece, para mim, um dos melhores exemplos - simples, divertido e prático - para explicar àqueles que não sabem nada sobre a programação que se entende realmente de "programa de computador". Então eu decidi propô-lo para o iPhone da Apple, talvez ajude alguém ...
Neste post vamos conseguir uma versão específica do "Adivinhe o número" e chamar FirstApp. Mais tarde, reescrever a mesma aplicação com métodos diferentes, tais como criar manualmente um UIView ou abandonarem o Interface Builder.
A aplicação já realizados, se você quiser apenas fazer o download, está disponível no meu repositório do Google Code:
1 - Começamos
Abrir XCode, selecione New Project no menu Arquivo e escolha, para esta versão, desde o clássico Ver-Based Application (da próxima vez que começar a partir de aplicativos Windows-Based para obter o mesmo resultado). Chame o projeto FirstApp e salve-o onde mais lhe convier.

Como você pode ver eu ainda estou usando a versão do XCode para SDK 2.2.1, SDK 3.0 não é porque eles ainda estão "muito" estável. Tenha em mente essa imagem como a nova versão do XCode alguns modelos não são completamente idênticas, e algumas coisas vão mudar. Mas, por agora você não precisa se preocupar com isso, a menos que já estavam usando a última versão do XCode.
Nesta versão, vamos utilizar o Interface Builder e, em seguida, primeiro, vamos chamar a nossa interface com o usuário. Vamos abrir a pasta Resources e clique duas vezes na FirstAppViewController.xib . Este arquivo está certo em Interface Builder, como o arquivo MainWindow.xib (ver também o arquivo de extensão Nterface I B uilder X).
Outros controladores são sempre colocadas nesta pasta. As pastas restantes contêm todos os outros arquivos da nossa aplicação e, em particular, vamos trabalhar muito sobre aqueles na pasta Classes.
Voltando ao Interface Builder somos confrontados com uma tela em branco que representa o nosso View , o recipiente onde será colocado os objetos de nossa interface com o usuário UIKit. Este objeto visual que estamos olhando usando o Interface Builder é ligado a um arquivo FirstAppViewController.m (and. h) presente na pasta Classes.
Na janela da biblioteca são todos os componentes visuais para criar interfaces padrão, agradável e acessível em nosso iPhone da Apple.
Estes são facilmente classificados por tipo (veja a pasta azul na parte superior). Para incluí-los na nossa opinião, basta selecionar o componente da Biblioteca e arrastá-lo para a janela View fienstra nosso, onde pudéssemos colocá-lo, redimensioná-lo e configurá-lo à vontade (todos os códigos coisas também viável, como veremos em breve).
), un campo testo per l'inserimento del numero da indovinare ( UITextField ) e – finalmente – un semplice bottone ( UIButton ) per verificare se abbiamo indovinato: Antes de continuar, é a primeira vez que você trabalha com Interface Builder, um pouco divertido "experimentar os vários componentes, e quando ele fica muito, certifique-se de obter algo como a imagem mostrada abaixo, que é feito com um título o componente UINavigationBar , um texto introdutório ( UILabel ), um campo de texto para digitar o número de adivinhar ( UITextField ) e - finalmente - um simples botão ( UIButton ) para ver se nós adivinhou:

A configuração dos componentes em Interface Builder através de uma janela em particular é sempre dividido em quatro abas: atributos, conexões, tamanho e identidade, uma espécie de "inspetor" dos componentes. Dependendo do diálogo selecionado do componente da identidade é configurado com as características adequadas para o componente. Se selecionar o UINavigationBar , por exemplo, temos todas as configurações possíveis para este tipo de componente.

2 - Código
Agora que nós estabelecemos a nossa posição e componentes visuais para a interface, vamos escrever um pouco de código para manipular. Primeiro de tudo é deixar abrir o arquivo FirstAppViewController.he tornou tão:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | / / / / FirstAppViewController.h / / FirstApp / / / / Criado por Giovambattista Fazioli em 19/06/09. / / Copyright Saidmade Ltd. 2009. Todos os direitos reservados. / / # Import <UIKit/UIKit.h> UIViewController { @ Interface FirstAppViewController: UIViewController { IBOutlet UITextField * número; IBOutlet UIButton * botão; numeroACaso int; } IBAction ) controllaNumero; - (IBAction) getNumber; @ End |
Linhas 12, 13 e 14 definem as "variáveis" do nosso jogo. di Interface Builder. Os dois primeiros são ponteiros para os nossos gráficos incluídos no Interface Builder:. Caixa de texto e botão IBOutlet , digite davati, serve para criar um link, uma referência à interface .xib Interface Builder. Na verdade, se quiséssemos criar componentes de nossos franqueados por meio de código sem passar pelo Interface Builder, basta apagar a IBOutlet , por ser redundante. Linha 17, no entanto, define um método (a pós-evento) que queremos para disparar quando o usuário clica no botão. Neste arquivo. H (arquivos de cabeçalho) foi realizada apenas definições. A implementação do código atual está no arquivo correspondente M:. FirstAppViewController.m . Control-clique é ALT + UP ARROW muda alternadamente. H arquivo para o arquivo. M. Vamos então para editar FirstAppViewController.m . Primeiro de tudo para apagar comentários meotdo viewDidLoad (33 ª linha ou algo assim) e vamos tornar-se:
1 2 3 4 5 6 7 | / / Implementar viewDidLoad fazer a configuração adicional após o carregamento do ponto de vista, tipicamente de um bico. void ) viewDidLoad { - (Void) {viewDidLoad ; [Super viewDidLoad]; + arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%; "Numero pensato %d" , numeroACaso ) ; NSLog (@ "Número% d pensei," numeroACaso); } |
viewDidLoad é um dos métodos invocados quando o aplicativo for iniciado. di jQuery . Se você quer é um pouco 'para o document onload Javascript ou $(document).ready() para jQuery . Eu adicionei as linhas que são 5 e 6. A 5, em particular, cria um número aleatório 1-10! O número da linha 6, no entanto, é somente para depuração e imprime o número gerado no console. : Agora vamos escrever o código (o impementazione) método controllaNumero() nós definimos no arquivo FirstAppViewController.h :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | IBAction ) controllaNumero { - (IBAction) {getNumber "Premuto bottone di controlla numero" ) ; NSLog (@ "número de controle pressionado o botão"); [ numero.text integerValue ] ; numeroInserito = int [numero.text integerValue]; message; NSString mensagem *; "Il numero inserito è %d" , numeroInserito ) ; NSLog (@ "O número digitado é% d", numeroInserito); numeroInserito < numeroACaso ) { if (numeroInserito <numeroACaso) { "Troppo basso..." ; message = @ "Too low ..."; ( numeroInserito > numeroACaso ) { Else} if (numeroInserito> numeroACaso) { "Troppo alto..." ; message = @ "Muito alto ..."; ( numeroInserito == numeroACaso ) { Else} if (numeroInserito numeroACaso ==) { "Bravo hai indovinato" ; message = @ "Bravo, você adivinhou-lo"; + arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%; "Numero pensato %d" , numeroACaso ) ; NSLog (@ "Número% d pensei," numeroACaso); } [ [ UIAlertView alloc ] initWithTitle : @ "Responso" message : message delegate : nil cancelButtonTitle : @ "OK" otherButtonTitles : nil ] ; UIAlertView alertMessaggio * = [[UIAlertView alloc] initWithTitle: @ "Resposta" mensagem: Delegado mensagem: cancelButtonTitle nil: @ "OK" otherButtonTitles: nil]; ; [AlertMessaggio show]; ; [AlertMessaggio release]; "" ; numero.text @ = ""; } |
Este código, a última gravação antes de voltar para o Interface Builder, podemos defini-lo como o coração do sistema, ou melhor do jogo. Na verdade, ele verifica se o número digitado no campo de texto ( UITextField ) é inferior, igual ou superior ao número "pensamento" do nosso iPhone. Dependendo do resultado mostra um alerta. Linha 2, como sempre, é apenas para depuração e imprime uma mensagem no console quando clicamos no botão. Linha 4, no entanto, é interessante, e isso transforma o conteúdo textual da nossa caixa de texto para um número inteiro. Isto é necessário para comparar o número aleatório numeroACaso com o número digitado pelo usuário. Em Objective-C, como em C, não há conversões de tipo implícito, como outras linguagens de alto nível que não suportam sentido estrito das variáveis em tipizazzione. Em algumas línguas, de fato, você pode comparar strings e inteiros sem executar qualquer conversão explícita, ou fundição.
Linha 5 prepara um ponteiro para uma string message de que a resposta será exibido nell'alert. Linhas 9-17 controlar o número digitado pelo usuário com o número aleatório e tirar as conclusões necessárias. Eu propositadamente colocar esses " if "brutal para tornar o código o mais claro possível. Como alternativa, podemos usar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ( ( numeroInserito - numeroACaso ) < 0 ) ? - 1 : ( ( numeroInserito - numeroACaso ) ? 1 : 0 ) ; Decisão = int ((numeroInserito - numeroACaso) <0) - 1: ((numeroInserito - numeroACaso) 1: 0); decisione ) { switch (decisão) { 1 : casas - 1: "Troppo basso..." ; message = @ "Too low ..."; break; : case 1: "Troppo alto..." ; message = @ "Muito alto ..."; break; : case 0: "Bravo hai indovinato" ; message = @ "Bravo, você adivinhou-lo"; / / Start over ... + arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%; "Numero pensato %d" , numeroACaso ) ; NSLog (@ "Número% d pensei," numeroACaso); break; } |
Nós combinamos o código com Interface Builder
Vamos agora voltar ao Interface Builder, clique no arquivo sempre FirstAppViewController.xib . O que vamos fazer agora permitem que você vincule a interface visual com o Interface Builder e preparou o código que nós escrevemos, especialmente com os componentes com destaque IBOutlet . Os componentes que precisamos para ligar o nosso código para ter a caixa de texto eo botão, como definido nos arquivos de definição de interface FirstAppViewController.h . . A estes que deram o nome dos respectivos numero e bottone . De Interface Builder temos várias formas de ligar componentes visuais com o código, um dos mais simples é clicar com o botão direito do mouse em nosso componente visual, como o campo de texto ( UITextField ):

Esta janela é diferente para cada componente, mostra-nos tudo o que podemos "link" com o código. Em particular, estamos interessados em o último item, o Outlets Referencing seção de saída Referencing Novo. Clique no botão "círculo" para a direita e - mantendo pressionado o botão do mouse - arrastar a janela princiaple FirstAppViewController.xib FirstAppViewController sobre o ícone (dono do arquivo):

: Soltar o botão do mouse aparecerá um menu com a lista de todas as "variáveis" (propriedades) IBOutlet e definidos como UITextField :

No nosso caso, selecione numero . Repetimos exatamente o mesmo procedimento para o botão, com o acréscimo de que este último também chamado de um evento: - (IBAction) controllaNumero; . No final otteremo:

Conclusões
Se você fez tudo corretamente, está feito! Nosso jogo está pronto. Se você pode baixar o código fonte completo aqui . Obviamente este é apenas um exemplo e está faltando alguns detalhes para torná-lo um aplicativo real, os 57 × 57 ícones para controlar o número de entrada e outros detalhes ainda. O processo de desenvolvimento descrito aqui pode variar, por exemplo via Interface Builder apenas uma vez, ou seja, no final: Antes de escrever todo o código e depois de ir para a Interface Builder para objetos link. Neste exemplo, se mudaram mais para o Interface Builder para desenhar o contorno de nossa interface, sendo a aplicação mais simples.
Da próxima vez vamos ver como implementar a medisimo "play", sem usar o Interface Builder.










Não há comentários para este post
Deixe um comentário