La première source que je suis allé dans ses mains a été écrit en Basic et se composait de quelques lignes de code, de m'avoir éclairé. C'était un jeu simple qui a généré un nombre aléatoire de 1 à 10 et, à travers l'entrée au clavier, a prouvé que le nombre entré est Maggione, inférieur ou égal au nombre aléatoire. En dépit de sa rude simplicité reste, pour moi, l'un des meilleurs exemples - simple, ludique et pratique - pour expliquer à ceux qui ne savent rien sur la programmation qu'entend-on réellement pour «programme d'ordinateur". J'ai donc décidé de le proposer pour l'iPhone d'Apple, peut-être aidera quelqu'un ...
Articles taggés avec 'Apple'
iPhone FirstApp: Devinez le nombre - Partie 1
Objective-C: conversion de type
Avec certains langages de haut niveau tels que JavaScript ou PHP, où les données ne sont pas typées ou autrement ne peut pas être, nous sommes "gâtés" en comparer ou convertir des chaînes et les nombres entiers et vice-versa, tous cachés ou manipulés par l'interprète (ou le compilateur ). Par exemple en Javascript fonctions sont «contraints» (comme parseInt() par exemple) nécessaires dans des cas particuliers. Cependant, dans d'autres circonstances traiter les nombres entiers sans soucis de conversions particulières (explicite), tels que:
1 2 3 | 5 ; mioNumero var = 5; / / ... "Il valore di mioNumero è " + mioNumero ) ; alert ("La valeur est mioNumero" mioNumero +); |
Objective-C, cependant, le type de données est important et la conversion de type doit être expresse. Outre le casting (meilleure transtypage), nous pouvons utiliser les fonctionnalités spécifiques à la conversion de type. Par exemple, voici comment convertir un entier en une chaîne:
1 2 3 4 |
En revanche, voici comment convertir une chaîne à un entier:
1 2 3 4 | miaStringa = @ "128" ; NSString * maChaine = @ "128"; [ miaStringa integerValue ] ; mioNumero int = [maChaine integerValue]; / / "miaStringa=%@ mioNumero=%i" , miaStringa, mioNumero ) ; NSLog (@ "% @ maChaine = mioNumero =% s", maChaine, mioNumero); |
extrait de code iPhone: UIAlertView
La classe UIAletrView vous permet d'afficher une fenêtre modale (animée) d'informer et / ou vous demander quelque chose. Le UIAlterView (alertes de vue) sont très confortables et faciles à utiliser. La manipulation de réponse de l'utilisateur est résolu par l'interception de l'indice de la touche pressée. Pour voir un simple UIAlterView il suffit d'écrire:
1 2 3 4 | / / Alert comportant un bouton simple, sans rappel [ [ UIAlertView alloc ] initWithTitle : @ "Titolo" message : @ "Messaggio" cancelButtonTitle : @ "Annulla" otherButtonTitles : nil ] ; UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Titre" message: @ "Message" cancelButtonTitle: @ "Annuler" otherButtonTitles: nil]; ; [MyAlert spectacle]; ; [MyAlert release]; |
Et 'possible d'ajouter des boutons supplémentaires otherButtonTitles :
1 2 3 4 | / / Alerte avec deux simples boutons, pas de rappel [ [ UIAlertView UIAlertView MyAlert * = [[UIAlertView ; [MyAlert spectacle]; ; [MyAlert release]; |
: Pour déterminer quel bouton a été pressé, il suffit d'ajouter le delegate:self initialisation de l'objet UIAlterView :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Alerte / / simple avec deux boutons et les rappels [ [ UIAlertView alloc ] initWithTitle : @ "Titolo" message : @ "Messaggio" delegate : self cancelButtonTitle : @ "Annulla" otherButtonTitles : @ "Ok" , nil ] ; UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Titre" message: @ "Message" délégué: cancelButtonTitle auto: @ "Annuler" otherButtonTitles: @ "Ok", nil]; ; [MyAlert spectacle]; ; [MyAlert release]; / / Le rappel a la syntaxe suivante void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) clickedButtonAtIndex alertView: (NSInteger) {buttonIndex buttonIndex ) { commutateurs (buttonIndex) { : cas 1: / / Code break; } } |
Le rappel alertView besoin d'avoir ce nom, pour plus d'informations, voir UIAlertViewDelegate
punteranno sempre a quella. Avec seulement la callbck alertView:clickedButtonAtIndex plus UIAletrView pointera toujours vers cela. En utilisant le champ tag de l'objet UIAletrView , nous pouvons déterminer ce que le "caller":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Alerte / / simple avec deux boutons et les rappels [ [ UIAlertView alloc ] initWithTitle : @ "Titolo" message : @ "Messaggio" delegate : self cancelButtonTitle : @ "Annulla" otherButtonTitles : @ "Ok" , nil ] ; UIAlertView MyAlert * = [[UIAlertView alloc] initWithTitle: @ "Titre" message: @ "Message" délégué: cancelButtonTitle auto: @ "Annuler" otherButtonTitles: @ "Ok", nil]; ; myAlertA.tag = 1; ; [MyAlertA spectacle]; ; [MyAlertA release]; / / [ [ UIAlertView alloc ] initWithTitle : @ "Titolo" message : @ "Messaggio" delegate : self cancelButtonTitle : @ "Annulla" otherButtonTitles : @ "Ok" , nil ] ; UIAlertView myAlertB * = [[UIAlertView alloc] initWithTitle: @ "Titre" message: @ "Message" délégué: cancelButtonTitle auto: @ "Annuler" otherButtonTitles: @ "Ok", nil]; ; myAlertA.tag = 2; ; [MyAlertB spectacle]; ; [MyAlertB release]; / / Gestion des multiples UIAlertView void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) clickedButtonAtIndex alertView: (NSInteger) {buttonIndex "Alert Tag: %i" , alertView.tag ) ; NSLog (@ "Mots d'alerte:% s", alertView.tag); "buttonIndex: %i" , buttonIndex ) ; NSLog (@ "buttonIndex:% s", buttonIndex); } |
Très court astuce: NSTimer arrêt
L'utilisation de minuteries ( NSTimer ) pour développer des applications pour l'iPhone d'Apple est très fréquente, non seulement à faire des jeux. Un des problèmes avec laquelle on peut entrer en collision est le asynchronisme de la minuterie, ce qui peut entraîner, lors de l'arrestation d'un ou plusieurs compteurs, le crash de notre application. , si invoca la invalidate che, appunto, arresta il timer. Lorsque vous voulez arrêter un ou plusieurs compteurs, où repeats est réglé sur YES , vous appelez la invalidate qui, en fait, arrêter le chronomètre.
Apple iPhone 3.0 SDK: Correction d'un bug sur les UIButton buttonWithType
Comme indiqué dans le message d'Apple iPhone SDK 3.0: incompatibilité première de la version 3.0 d'Apple SDK montrent des comportements différents à l'égard de libérer 2.2.1. Service d'aide pour les développeurs m'a donné la réponse, puis la solution au problème. . La réponse a été que le support technique [UIButton buttonWithType:] déjà appelé - à l'intérieur - l' initWithFrame . Il s'ensuit que, selon le support technique, écrit:
De Actionscript à Objective-C
J'ai pensé qu'il pourrait être utile à ceux qui ont récemment approché le développement d'applications pour l'iPhone d'Apple, comparer Adobe ActionScript - le langage utilisé dans Adobe Flash et Adobe Flex, plus fréquente chez les néo-programmeurs - et Objective-C la langue utilisé par Apple pour développer ses applications. Objective-C est en effet un langage orienté-objet dans le sens le plus pur, non pas que Actionscript n'est pas, mais Objective-C est certainement un plus, car il est une extension de la norme ANSI C et sa syntaxe est un mélange entre le C / C + + et Smalltalk, est un véritable OO (orienté objet).
Apple iPhone SDK 3.0: incompatibilité première
Après avoir installé la version 3.0 du SDK pour l'iPhone d'Apple, manifestement pas encore parfaitement stable, j'ai immédiatement remarqué certains problèmes, à la fois dans la compilation du code est dans le XCode générale. Le plus important - que je signalé sans délai avec un «foyer» pour Apple, les développeurs au centre - la création de boutons dans le code. Voici un extrait du code n'est pas compatible avec le SDK 3.0:
1 2 3 4 | [ [ UIButton buttonWithType : UIButtonTypeRoundedRect ] initWithFrame : CGRectMake ( 0 , 0 , 100 , 40 ) ] ; UIButton * myButton = [[UIButton buttonWithType: UIButtonTypeRoundedRect] initWithFrame: CGRectMake (0, 0, 100, 40)]; @ "Bottone" forState : UIControlStateNormal ] ; [MyButton setTitle: @ "Button" forState: UIControlStateNormal]; / / Autres paramètres myButton ] ; [Self.view addSubview: myButton]; |
En remplissant ce code avec le SDK 2.2.1 vous obtenez un bouton classique avec l'étiquette "Bouton". Avec la version 3.0 du SDK, le bouton est créé, mais l'étiquette disparaît. la situazione sembra migliorare, nel senso che la label viene resa apparentemente in modo corretto. Utilisation en tant que buttonWithType le type UIButtonTypeCustom la situation semble s'améliorer, en ce sens que l'étiquette est apparemment fait correctement. Il est encore étrange pour la panne soudaine du type UIButtonTypeRoundedRect . Je suis toujours en attente d'une réponse d'Apple ... Je viens de nouveautés; place!
Le premier: Disponible sur iTunes
Six jours et l'AppStore a approuvé la (ma) première application pour Apple iPhone!
Salut téléphone
A partir d'aujourd'hui a inauguré une nouvelle section (catégorie à être corrigée) dédié au développement d'applications sur l'iPhone d'Apple! Je déclare maintenant que la plupart des articles qui seront la publication d'un "cut" en ligne avec l'esprit de ce blog, qui sera principalement pour les utilisateurs avancés. Cependant, comme je l'ai fait dans d'autres sujets, essayez d'être aussi clair que possible et, le cas échéant, mettre un peu de "concept de base« utile à un public plus large.
Très court astuce: désactiver le redimensionnement d'un textarea sur Safari
Dans n'importe quel navigateur développé à partir du moteur de rendu WebKit (comme apputo Safari ou Chrome ), le champs textarea spectacle, en bas à droite, le trait caractéristique de redimensionnement. Si cette spécificité peut être vraiment utile dans certains cas, dans d'autres il est transformé en un élément gênant.







Derniers Commentaires
Giovambattista Fazioli : @ Nik: Je suis heureux! Bonne chance alors!
Nik : J'ai lundi l'examen des informations sur java, grâce à moi que vous avez été très utile, le livre que je n'était pas claire ...
Marquez : Merci beaucoup, je l'ai allumé
Je l'ai résolu par la mise en [cc_objc] / / OptionViewController.m - ...
Giovambattista Fazioli : @ Mark: Je vous suggère de réfléchir une approche plus correcte. Si vous exécutez la sous-classe de l'onglet ...
louis : très clair et simple, je dois avouer que rédiger un an à peine utiliser des délégués créés par ...