2009-09-14 5 views
0

Hé là, je suis un concepteur qui est vraiment nouveau dans la programmation avec xcode ou Objective-C en général. J'essaye de créer quelques applications simples pour essayer de mieux s'accrocher à la programmation de l'iPhone. Actuellement, je travaille sur une application très basique qui a 3 champs de texte, un champ de nom et deux champs numériques, et lorsque vous cliquez sur le bouton, il apparaît dans l'étiquette "nom, la réponse est réponse" problème est , quand je clique sur le bouton, rien n'apparaît sur l'étiquette. Je suis sûr que j'ai le code correctement, je me trompe peut-être, je pense que j'ai peut-être manqué un point de vente ou quelque chose d'idiot de la sorte. C'est la partie que je perds vraiment. Aucune suggestion?Le bouton ne fonctionne pas

le .h:

#import <UIKit/UIKit.h> 
#import <Foundation/Foundation.h> 


@interface fordaddyAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    IBOutlet UITextField *name; 
    IBOutlet UITextField *myInt1; 
    IBOutlet UITextField *myInt2; 
    IBOutlet UILabel *sum; 
    IBOutlet UIButton *click; 

} 


@property (nonatomic, retain) IBOutlet UIWindow *window; 


-(IBAction)click:(id)sender; 



@end 

le .m:

#import "fordaddyAppDelegate.h" 

@implementation fordaddyAppDelegate 
@synthesize window; 


- (void)applicationDidFinishLaunching:(UIApplication *)application {  


    [window makeKeyAndVisible]; 
} 

-(IBAction)click:(id)sender; 
{ 
    int sum; 

    sum = myInt1, myInt2; 
    NSLog (name, @", the answer is %i", sum); 
} 

- (void)dealloc { 
    [window release]; 
    [super dealloc]; 
} 


@end 

et im terriblement désolé à l'avance, l'aperçu ne marche pas regarder à peu:/

+3

Vous devriez probablement poster le code afin que nous puissions le voir. – micmoo

Répondre

2

votre problème est que vous êtes juste ÉCRITURE un message à la console, ne pas afficher le résultat sur l'étiquette ...

est ici ce qu'il devrait être:

- (IBAction)click:(id)sender { 
    int sum = [myInt1.text intValue] + [myInt2.text intValue]; 
    label.text = [NSString stringWithFormat:@"%@ the answer is %d", name.text, sum]; 
} 

Cela fait une variable ' sum 'qui est le résultat de l'addition des valeurs entières des champs de texte. vous accédez à la chaîne d'un UITextView en utilisant le fichier .text. Ensuite, vous devez le convertir en un nombre entier pour l'addition, donc vous appelez la méthode intValue dessus. Vous faites ensuite un NSString avec stringWithFormat, et le faites contenir le name.text et la somme. Je recommande fortement de lire davantage sur Objective-C en général avant de commencer avec toutes ces choses de l'interface graphique ... juste une suggestion.

1

Votre problème est le suivant:

int sum; 

sum = myInt1, myInt2; 

sum est un nombre entier. myInt1 et myInt2 sont UITextFields. La virgule ne fait pas ce que vous attendez.

Vous devez extraire le intValue de chacun des champs de texte, et les ajouter ensemble en utilisant un "+" (comme vous le feriez avec les mathématiques normales).

+0

Merci pour le pourboire! Cependant, quand je remplace la virgule par un + je reçois cette erreur * Opérandes invalides à binaire + * Pourriez-vous expliquer cela s'il vous plaît? – jxd215

+0

Comme Dave l'a souligné, ce sont des UITextFields, pas des ints. Vous ne pouvez pas ajouter deux champs de texte. Vous devez leur demander leur intValue et les ajouter. – Chuck

Questions connexes