2009-12-08 4 views
0

en essayant de faire une application iPhone et en passant par les tutoriels et les livres recommandés par ceux qui m'ont précédé :) J'essaie de trouver des informations sur le scanf/stockage des données d'entrée utilisateur d'un champ de texte dans un variable que je peux utiliser plus tard dans mon programme. Le champ de texte est en fait un champ numérique, donc j'essaie de sauvegarder les entiers qu'ils ont saisis et non le texte car il n'y en aura pas dans mon cas. Suis-je sur le mauvais chemin ici? Toute aide serait grandement appréciée.Utilisation de Scanf avec ObjC et iPhone

Répondre

1

Qu'en est-il si je suis essentiellement en train pour enregistrer l'entrée qui est un nombre à commencer par

Vous voulez NSNumberFormatter. Les formateurs de données ( Apple Guide) gèrent les conversions vers et depuis les chaînes, ainsi que le formatage pour la sortie.

1

Je pense plutôt que scanf, vous cherchez simplement à obtenir la valeur du champ de texte en tant que pointeur NSString. Si vous utilisez un UITextField dans votre interface, vous pouvez connecter UITextField à une variable membre de votre classe en déclarant la variable comme IBOutlet et en la connectant dans Interface Builder.

Vous pouvez ensuite accéder à la valeur de texte en tant que pointeur NSString en utilisant [UITextField nom de variable] .text.

Il existe de nombreuses fonctions utiles pour travailler avec NSStrings ou convertir la chaîne en d'autres types de données tels que des entiers.

Espérons que cela aide!

+0

que se passe-t-il si je tente essentiellement de sauvegarder l'entrée qui est un numéro pour commencer? – HollerTrain

+0

Vous pouvez utiliser la méthode intValue sur NSString pour convertir facilement entre une chaîne et un nombre. –

0

Voici un exemple d'obtention d'un entier à partir d'un champ de texte.

Dans votre fichier .h:

#include <UIKit/UIKit.h> 

@interface MyViewController : UIViewController { 
    UITextField *myTextField; 
} 

@property (nonatomic, retain) IBOutlet UITextField *myTextField; 

- (IBAction)buttonPressed1:(id)sender; 

@end 

Dans votre fichier .m:

#include "MyViewController.h" 

@implementation MyViewController 

@synthesize myTextField; 

- (IBAction)buttonPressed1:(id)sender { 
    NSString *textInMyTextField = myTextField.text; 
    // textInMyTextField now contains the text in myTextField. 

    NSInteger *numberInMyTextField = [textInMyTextField integerValue]; 
    // numberInMyTextField now contains an NSInteger based on the contents of myTextField 

    // Do some stuff with numberInMyTextField... 
} 

- (void)dealloc { 
    // Because we are retaining myTextField we need to make sure we release it when we're done with it. 
    [myTextField release]; 
    [super dealloc]; 
} 

@end 

dans le générateur d'interface, connectez la prise myTextField de votre contrôleur de vue sur le champ de texte que vous souhaitez obtenir la valeur de. Connectez l'action buttonPressed1 au bouton.

Espérons que cela aide!