2010-12-06 49 views
0

我收到以下錯誤,而建設的代碼XCode中創建的按鈕:錯誤:預計符限定符列表前「[」令牌.......用於UIButton的XCode中

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

以下是代碼:

#import <UIKit/UIKit.h> 


    @interface MyViewController : UIViewController { 

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

} 

    -(IBAction)buttonClicked : (id)sender; 

    @end 

任何建議來解決錯誤?

在此先感謝

+0

給點時間閱讀目標c的基本知識將會對你非常有益。 – Ishu 2010-12-06 12:27:21

回答

2

您將實現代碼放入接口聲明。這不是它應該的地方。

該按鈕應該在接口中聲明,然後在.m文件的實現塊中實現。

我建議你拿起一本關於iOS開發的書,或許是Big Nerd Ranch的iPhone開發指南?

+0

如何(以及在​​哪裏)在實現文件中寫入以下代碼[signInButton addTarget:self action:@selector(buttonClicked :) forControlEvents:UIControlEventTouchUpInside]; int他的接口文件。我們也需要導入任何與UIButton相關的文件 – Prazi 2010-12-06 12:39:03

+1

這就是爲什麼你需要購買一本書。 – Jasarien 2010-12-06 13:17:32

0

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

是實際的代碼,不應該在您的界面(.h文件)中進行。該界面用於原型設計和定義當地人和道具。我猜你正在做這個編程,如果你是,你不需要IBOutlet和IBAction。對於初學者來說,它可能更好地做到這一點在Interface Builder ..

你的接口(.h文件中)應該是這樣的:

#import <UIKit/UIKit.h> 

@interface MyViewController : UIViewController { 

UIButton *_signInButton; 
} 

@property(nonatomic,retain) UIButton * signInButton; 

-(IBAction)buttonClicked :(id)sender; 

@end 

你的實現(.m文件)應該是這樣的:

#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

只需清理並重新構建。它適用於我

相關問題