2010-12-06 45 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

只需清理并重新构建。它适用于我

相关问题