2010-02-28 5 views
0

J'ai décidé de donner un coup de pied à ce développement iPhone App. pour aider à ajouter de la perspective à ce que je n'ai jamais programmé sous aucune forme de C ou pour n'importe quoi sur le Mac autre que Applescript. J'ai créé beaucoup de solutions en utilisant des mélanges d'Applescript, ASP classique, Perl, même PostScript. Je suis à la maison infusé donc je ne comprends pas tout mon truc Obj.xyz.blah.blee, désolé, -/ma première application iPhone et je suis coincé

je dois ... 1) prendre des données à partir d'un champ 2) convertir à un flotteur 3) faire quelques calculs 4), puis plop les résultats dans une étiquette

j'ai obtenu une version de ce travail où je tire le texte d'un dépôt et plop les résultats dans une étiquette sur en cliquant sur un bouton "Calculer", c'était facile. donc je sais que les points 1 et 4 sont bons. maintenant la partie difficile ...

i une fois la configuration version initiale pour assurer que je peux faire des points 3 et 4 en réglant mes variables float sous forme de bits de données statiques ...

float float_DiameterA, float_DiameterB; 
float myR1, myR2; 

float_DiameterA = 20; 
float_DiameterB = 5; 

myR1=(float_DiameterA-float_DiameterB)/2; 
myR2=1; 

r1.text=[[NSNumber numberWithFloat:myR1] stringValue]; 
r2.text=[[NSNumber numberWithFloat:myR2] stringValue]; 
a1.text = txtLength.text; 

résultats: r1 affiche "7.5" et r2 affiche "1". Cela fonctionne parfaitement MAIS j'ai besoin de prendre txtDiameterA.text et le mettre dans float_DiameterA comme une virgule flottante.

Voici ce que j'ai essayé pour l'étape 2 ...

str_DiameterA = [txtDiameterA.text text]; 
float_DiameterA = [[str_DiameterA text] floatValue]; 

mais cela ne fonctionne pas; -/

j'ai même essayé plusieurs versions de si (EOF == sscanf (str_DiameterA, "% f", & float_DiameterA)) { // erreur };

et

float_DiameterA = sscanf(txtDiameterA.text, "%f", &f); 

mais aucun de ceux travaillé non plus. Je pense que c'est quand j'ai commencé à réaliser que ce n'était pas C++ car je pensais que c'était lol ...

pense que vous aurez l'idée maintenant.

so ...

comment prenez-vous l'entrée de txtDiameterA.text et convertir en un flotteur? s'il vous plaît ne me dites pas d'utiliser Root Beer au lieu d'un cola lol.

oh, voici quelques éléments d'information qui pourraient avoir un impact ...

partie de mon .h

IBOutlet UITextField *txtDiameterA; 
IBOutlet UITextField *txtDiameterB; 

IBOutlet UILabel *r1; 
IBOutlet UILabel *r2; 

i mon interface utilisateur conçu en utilisant l'outil de création d'interface.

MERCI BEAUCOUP POUR VOTRE ASSISTANCE !!! ;-)

+1

Vous progresserez très vite si vous achetez, lisez et faites les exercices en deux livres: Programmation en Objective-C par Kochan et début du développement iPhone par Mark et LaMarche. Je connaissais moins de langues que vous, et maintenant j'ai 2 petites applications dans le magasin avec plus sur le chemin. Lisez et posez beaucoup de questions ici aussi. Bonne chance. – willc2

+0

"Je ne comprends pas tous mes trucs Obj.xyz.blah.blee, désolé" Oh, fils, êtes-vous dans le tour dur! Vous avez l'air d'un scripteur expérimenté mais willc2 est correct. Si vous n'obtenez pas certains principes de base de l'API Apple OOP, vous allez passer beaucoup de temps à tourner dans le futur. Quelques heures ou même quelques jours passés à apprendre la base sauveront des jours ou même des semaines de deuil et de frustration plus tard. – TechZen

+0

merci pour les commentaires que vous deux! willc2, je vais aller chercher ces deux livres, j'espère que la femme ne panique pas parce que je viens de ramasser iPhone Application Dev pour les nuls l'autre jour. C'était un acte de foi pour moi parce que j'ai trouvé que leur vieux livre AppleScript a fait des merveilles pour moi. TechZen, je sais, j'ai entendu cela à quelques reprises par d'autres vrais professionnels. Je suis un jeu à essayer. avoir une suggestion sur un livre ou quelque chose pour moi? merci encore ;-) –

Répondre

2

txtDiameterA est un UITextField. En regardant les docs, nous pouvons voir que l'attribut 'text' d'un UITextField renvoie un NSString

NSString a une belle méthode appelée floatValue qui renvoie une représentation flottante de la chaîne!

Ainsi,

NSString *diameter = txtDiameterA.text; 
float diameterAsFloat = [diameter floatValue]; 

vous donne la valeur dans votre champ de texte comme un flotteur.

+0

J'étais SOOOO fermer lol ... j'avais lu quelque chose à propos de cette chose floatValue mais manqué la partie NSString. merci beaucoup ... testé et fonctionnel! tellement pour jouer EQ, je vais construire mon application aujourd'hui! merci encore! ;-) –

Questions connexes