2010-12-06 3 views
0

Je reçois l'erreur suivante tout en construisant le code pour créer des boutons dans XCode:erreur: spécificateur-qualificatif liste attendue avant « [ » jeton ....... pour UIButton dans XCode

error: expected specifier-qualifier-list before '[' token ....... for UIButton in XCode

Voici le code:

#import <UIKit/UIKit.h> 


    @interface MyViewController : UIViewController { 

UIButton *signInButton; 
[signInButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

} 

    -(IBAction)buttonClicked : (id)sender; 

    @end 

Toutes les suggestions pour résoudre l'erreur?

Merci d'avance

+0

Donnez-vous du temps pour lire les bases de l'objectif c serait très bénéfique pour vous. – Ishu

Répondre

2

Vous mettez du code d'implémentation dans la déclaration d'interface. Ce n'est pas ce que ça devrait être.

Le bouton doit être déclaré dans l'interface, puis implémenté dans le bloc d'implémentation de votre fichier .m.

Je vous suggère de prendre un livre sur le développement iOS, peut-être le guide Big Nerd Ranch pour le développement iPhone?

+0

comment (et où) écrire le code suivant dans le fichier d'implémentation [signInButton addTarget: self action: @selector (buttonClicked :) forControlEvents: UIControlEventTouchUpInside]; int le fichier d'interface. Aussi avons-nous besoin d'importer un fichier lié à UIButton – Prazi

+1

C'est pourquoi vous devez acheter un livre. – Jasarien

0

[signInButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];

est le code réel, et ne devrait pas aller dans votre interface (fichier .h). L'interface est pour le prototypage et la définition des locaux et des accessoires. Je devine que vous faites ceci par programme, si vous l'êtes, vous n'avez pas besoin de l'IBOutlet et d'IBAction. Pour les débutants, il est probablement préférable de le faire dans le constructeur d'interface ..

Votre interface (fichier .h) devrait ressembler à ceci:

#import <UIKit/UIKit.h> 

@interface MyViewController : UIViewController { 

UIButton *_signInButton; 
} 

@property(nonatomic,retain) UIButton * signInButton; 

-(IBAction)buttonClicked :(id)sender; 

@end 

Votre implémentation (fichier .m) devrait ressembler à ceci:

#import "MyViewController.h" 

@implementation MyViewController 

@synthesize signInButton=_signInButton; 


- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.signInButton = [[UIButton alloc] initWithFrame:CGRectMake(X_POS, Y_POS, 30, 30)]; 

[self.signInButton addTarget:self action:@selector(buttonClicked:) 
     forControlEvents:UIControlEventTouchUpInside]; 

[self.signInButton setTitle:@"PRESS ME" forState:UIControlStateNormal]; 

[self.view addSubview:self.signInButton]; 

} 

-(IBAction)buttonClicked :(id)sender 
{ 
NSLog(@"CLICKED!"); 
//THE BUTTON WAS CLICKED, DO STUFF 
} 

- (void)dealloc 
{ 
[_signInButton release];_signInButton=nil; 
} 

@end 
+0

Hey Luke merci pour votre réponse rapide ... Désolé pour la question stupide, mais je suis encore un débutant dans la programmation iPhone ... Je me demandais juste comment donner un exemple de code pour écrire [signInButton addTarget: self action: @selector (buttonClicked :) forControlEvents: UIControlEventTouchUpInside]; int le fichier d'interface – Prazi

+0

Tout le monde doit commencer quelque part. Habituellement, les débutants le font en utilisant le constructeur de l'interface. Cependant, une fois que vous êtes sur pied, beaucoup offrent des fonctionnalités comme celle-ci comme vous l'avez fait. Voir ma réponse éditée .. –

0

Juste nettoyer et reconstruire. Cela fonctionne pour moi

Questions connexes