La première source que je me levai dans mes mains a été écrit en Basic et se composait de quelques lignes de code, de m'avoir éclairé. C'était un jeu simple qui génère un nombre aléatoire de 1 à 10 et, par saisie au clavier, vérifiez que le numéro saisi est Maggioni, inférieur ou égal au nombre aléatoire. En dépit de sa rude simplicité reste, pour moi, l'un des meilleurs exemples - simple, amusant et pratique - pour expliquer à ceux qui ne savent rien sur la programmation ce que signifie réellement pour «programme informatique». J'ai donc décidé de le proposer pour l'iPhone d'Apple, peut-être va aider quelqu'un ...
Dans ce post nous allons réaliser une version particulière de "Devinez le nombre" et appeler FirstApp. Plus tard, réécrire la même application avec différentes méthodes, telles que la création manuelle d'une UIView ou sortant d'Interface Builder.
L'application déjà fait, si vous voulez juste à télécharger, est disponible sur mon référentiel Google Code:
1 - Nous commençons
Ouvrez XCode, sélectionnez Nouveau projet dans le menu Fichier et choisissez, pour cette version, à partir de l'affichage classique à base d'application (la prochaine fois que nous partons de Window-Based Application à obtenir le même résultat). Appelez le projet FirstApp et enregistrez là où cela vous arrange le plus.

Comme vous pouvez le voir je suis toujours en utilisant la version de XCode pour SDK 2.2.1, SDK 3.0 n'est pas parce qu'ils sont encore "très" stable. Gardez à l'esprit cette image comme la nouvelle version de XCode certains modèles ne sont pas tout à fait identiques, et certaines choses vont changer. Mais pour l'instant vous n'avez pas besoin de s'inquiéter à ce sujet sauf s'ils étaient déjà en utilisant la dernière version de XCode.
Dans cette version, nous allons utiliser Interface Builder et ensuite, d'abord, nous allons tirer notre interface utilisateur. Ouvrons le dossier Ressources et double cliquez sur FirstAppViewController.xib . Ce fichier est bien dans Interface Builder, que le fichier MainWindow.xib (voir aussi l'extension du fichier, je nterface B uilder X).
Toute les autres contrôleurs sont toujours placés dans ce dossier. Les dossiers restants contiennent tous les autres fichiers de notre application et, en particulier, nous travaillons beaucoup sur ces classes dans le dossier.
Pour en revenir à Interface Builder, nous sommes face à un écran blanc qui représente notre View , le conteneur sera placé où les objets de notre interface utilisateur UIKit. Cet objet visuel nous cherchons à utiliser Interface Builder est connecté à un fichier FirstAppViewController.m (et. h) présents dans le dossier Classes.
Dans la fenêtre de la bibliothèque sont tous des éléments visuels pour créer des interfaces standard, agréable et accessible sur notre iPhone d'Apple.
Ces endroits sont facilement triés par type (voir le dossier bleu en haut). Pour les inclure à notre avis, il suffit de sélectionner le composant de la bibliothèque et faites-la glisser dans la vue fienstra fenêtre de notre, où nous pourrions placer, redimensionner et de le configurer à volonté (tout le code des choses aussi possible, comme nous le verrons bientôt).
), un campo testo per l'inserimento del numero da indovinare ( UITextField ) e – finalmente – un semplice bottone ( UIButton ) per verificare se abbiamo indovinato: Avant de continuer, c'est la première fois que vous travaillez avec Interface Builder, un peu amusant »d'essayer les différentes composantes, et quand il devient trop forte, assurez-vous d'obtenir quelque chose comme l'image ci-dessous, ce qui est fait avec un titre la composante UINavigationBar , un texte d'introduction ( UILabel ), un champ de texte pour entrer le nombre à deviner ( UITextField ) et - enfin - un simple bouton ( UIButton ) pour voir si nous avons deviné:

Le réglage des composants dans Interface Builder à travers une fenêtre particulière est toujours divisée en quatre onglets: attributs, les connexions, la taille et l'identité, une sorte de «inspecteur» des composants. Selon le dialogue Identité composant sélectionné est configuré avec les caractéristiques appropriées pour le composant. Si nous choisissons la UINavigationBar , par exemple, nous avons tous les paramètres possibles pour ce type de composant.

2 - Code
Maintenant que nous avons établi notre position et les composants visuels de l'interface, nous allons écrire un peu «code à manipuler. Tout d'abord laissez-le ouvrir le fichier FirstAppViewController.he devenu si:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | / / / / FirstAppViewController.h / / FirstApp / / / / Créé par Giovambattista Fazioli le 19/06/09. / / Copyright Saidmade Ltd 2009. Tous droits réservés. / / # Import <UIKit/UIKit.h> UIViewController { @ Interface FirstAppViewController: UIViewController { IBOutlet UITextField * nombre; IBOutlet UIButton * bouton; numeroACaso int; } IBAction ) controllaNumero; - (IBAction) getNumber; @ Fin |
Lignes 12, 13 et 14 définissent les «variables» de notre match. di Interface Builder. Les deux premiers sont des pointeurs vers nos graphiques inclus avec Interface Builder:. La zone de texte et un bouton IBOutlet , tapez davati, sert à créer un lien, une référence, à l'interface .xib Interface Builder. En fait, si nous voulions créer nos composants franchisés à travers le code sans passer par Interface Builder, il suffit de supprimer l' IBOutlet , comme redondants. Ligne 17, cependant, définit une méthode (un post-événement) que nous voulons pour déclencher lorsque l'utilisateur clique sur le bouton. Dans ce fichier. H (fichiers d'en-tête), nous avons réalisé que des définitions. La mise en œuvre du code réel est dans le fichier correspondant M:. FirstAppViewController.m . Contrôle-clic est ALT + HAUT FLÈCHE commutateurs alternativement. Fichier H pour le fichier. M. Dirigeons-nous ensuite d'éditer FirstAppViewController.m . Tout d'abord de supprimer les commentaires meotdo viewDidLoad (33 ème ligne ou presque) et nous allons devenir:
1 2 3 4 5 6 7 | / / Mettre en œuvre viewDidLoad faire configuration supplémentaire après le chargement de la vue, typiquement d'une plume. void ) viewDidLoad { - (Void) {viewDidLoad ; [Super viewDidLoad]; + arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%; "Numero pensato %d" , numeroACaso ) ; NSLog (@ "% d Nombre pensé," numeroACaso); } |
viewDidLoad est l'une des méthodes invoquées quand l'application démarre. di jQuery . Si vous voulez, c'est un peu "à l' document onload Javascript ou $(document).ready() pour jQuery . J'ai ajouté les lignes qui sont 5 et 6. Le 5, en particulier, crée un nombre aléatoire de 1 à 10! Le numéro de la ligne 6, toutefois, n'est que pour le débogage et imprime le nombre généré sur la console. : Maintenant nous écrire le code (le impementazione) méthode controllaNumero() , nous avons défini dans le fichier 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 (@ "nombre Pressé contrôle bouton"); [ numero.text integerValue ] ; numeroInserito = int [numero.text integerValue]; message; NSString * message; "Il numero inserito è %d" , numeroInserito ) ; NSLog (@ "Le numéro saisi est% d", numeroInserito); numeroInserito < numeroACaso ) { if (numeroInserito <numeroACaso) { "Troppo basso..." ; message = @ "Trop peu ..."; ( numeroInserito > numeroACaso ) { } Else if (numeroInserito> numeroACaso) { "Troppo alto..." ; message = @ "Trop haut ..."; ( numeroInserito == numeroACaso ) { } Else if (numeroInserito numeroACaso ==) { "Bravo hai indovinato" ; message = @ "Bravo, vous avez deviné»; + arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%; "Numero pensato %d" , numeroACaso ) ; NSLog (@ "% d Nombre pensé," numeroACaso); } [ [ UIAlertView alloc ] initWithTitle : @ "Responso" message : message delegate : nil cancelButtonTitle : @ "OK" otherButtonTitles : nil ] ; UIAlertView alertMessaggio * = [[UIAlertView alloc] initWithTitle: @ "Réponse" message: délégué message: cancelButtonTitle nul: @ "OK" otherButtonTitles: nil]; ; [AlertMessaggio spectacle]; ; [AlertMessaggio release]; "" ; numero.text @ = ""; } |
Ce code, la dernière écriture avant de revenir à Interface Builder, nous pouvons le définir comme le cœur du système, ou mieux de la partie. En fait, il vérifie si le nombre entré dans le champ texte ( UITextField ) est inférieur, supérieur ou égal au nombre «pensé» à partir de notre iPhone. Selon le résultat montre une alerte. Ligne 2, comme toujours, est uniquement pour le débogage et affiche un message sur la console quand on clique sur le bouton. Ligne 4, cependant, est intéressant, et cela transforme le contenu textuel de notre zone de texte à un nombre entier. Cela est nécessaire pour comparer le nombre aléatoire numeroACaso avec le nombre entré par l'utilisateur. En Objective-C, comme en C, il n'ya pas de conversions de type implicites, comme d'autres langages de haut niveau qui ne supportent pas au sens strict des variables dans tipizazzione. Dans certaines langues, en fait, vous pouvez comparer les chaînes et les entiers sans effectuer aucune conversion explicite, ou coulée.
Ligne 5 prépare un pointeur vers une chaîne de message que la réponse sera affichée nell'alert. Lignes 9 à 17 contrôler le nombre entré par l'utilisateur avec le nombre aléatoire et de tirer les conclusions nécessaires. J'ai volontairement mis ces " if "brutal pour rendre le code plus clair possible. Sinon, nous pourrions utiliser:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ( ( numeroInserito - numeroACaso ) < 0 ) ? - 1 : ( ( numeroInserito - numeroACaso ) ? 1 : 0 ) ; Décision = int ((numeroInserito - numeroACaso) <0) - 1: ((numeroInserito - numeroACaso) 1: 0); decisione ) { switch (décision) { 1 : maisons - 1: "Troppo basso..." ; message = @ "Trop peu ..."; break; : cas 1: "Troppo alto..." ; message = @ "Trop haut ..."; break; : case 0: "Bravo hai indovinato" ; message = @ "Bravo, vous avez deviné»; / / Début de plus ... + arc4random ( ) % 10 ; numeroACaso arc4random = 1 + () 10%; "Numero pensato %d" , numeroACaso ) ; NSLog (@ "% d Nombre pensé," numeroACaso); break; } |
Nous combinons le code avec Interface Builder
Revenons maintenant à l'Interface Builder, cliquez sur le fichier toujours FirstAppViewController.xib . Ce que nous allons faire maintenant vous permettre de relier l'interface visuelle avec Interface Builder et préparé le code que nous avons écrit, en particulier avec les composants mis en évidence avec IBOutlet . Les composants que nous avons besoin de lier notre code pour avoir le champ texte et le bouton, tel que défini dans les fichiers de définition de l'interface FirstAppViewController.h . . Pour ceux-ci nous a donné le nom de l'respectifs numero et les bottone . De Interface Builder, nous avons différentes façons de lier les composants visuels avec le code, l'un des plus simple est de cliquer sur le bouton droit de la souris sur notre composant visuel, tels que le champ de texte ( UITextField ):

Cette fenêtre est différente pour chaque composant, nous montre tout ce que nous pouvons "lien" avec le code. En particulier nous nous intéressons dans le dernier élément, les points de référence à l'article Sortie Référencement Nouvelle. Cliquez sur le "cercle" à droite et - maintenant enfoncé le bouton de la souris - faire glisser la fenêtre princiaple FirstAppViewController.xib FirstAppViewController sur l'icône (propriétaire du fichier):

: Relâcher le bouton de la souris un menu apparaît avec la liste de toutes les "variables" (propriétés) IBOutlet et défini comme UITextField :

Dans notre cas, nous choisissons numero . Nous répétons exactement la même procédure pour le bouton, avec l'ajout que ce dernier avait également appelé un événement: - (IBAction) controllaNumero; . A la fin de otteremo:

Conclusions
Si vous avez tout fait correctement, nous voilà! Notre jeu est prêt. Si vous pouvez télécharger le source complet ici . Évidemment, cela est juste un exemple et il manque quelques détails pour en faire une véritable application, les 57 × 57 icônes pour contrôler le nombre d'entrée et d'autres détails encore. Le processus de développement décrites ici peuvent être variées, par exemple via Interface Builder qu'une seule fois, c'est à dire à la fin: Avant de vous écrire tout le code et puis vous allez à Interface Builder d'objets de lien. Dans cet exemple, nous avons déplacé sur plus d'Interface Builder pour dessiner le contour de notre interface, étant l'application la plus simple.
La prochaine fois que nous allons voir comment mettre en œuvre les medisimo "jouer" sans utiliser Interface Builder.










Il n'y a aucun commentaire pour cet article
Laisser un commentaire