错误:XCode 中 UIButton 的“[”标记 ....... 之前的预期说明符限定符列表
Posted
技术标签:
【中文标题】错误:XCode 中 UIButton 的“[”标记 ....... 之前的预期说明符限定符列表【英文标题】:error: expected specifier-qualifier-list before '[' token ....... for UIButton in XCode 【发布时间】:2010-12-06 12:14:36 【问题描述】:我在构建用于在 XCode 中创建按钮的代码时遇到以下错误:
错误:XCode 中 UIButton 的“[”标记.......之前的预期说明符限定符列表
以下是代码:
#import <UIKit/UIKit.h>
@interface MyViewController : UIViewController
UIButton *signInButton;
[signInButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
-(IBAction)buttonClicked : (id)sender;
@end
有什么解决这个错误的建议吗?
提前致谢
【问题讨论】:
花点时间阅读目标 c 的基础知识对您非常有益。 【参考方案1】:您将实现代码放入接口声明中。那不是它应该在的地方。
按钮应在界面中声明,然后在 .m 文件的实现块中实现。
我建议你买一本关于 ios 开发的书,也许是 Big Nerd Ranch 的 iPhone 开发指南?
【讨论】:
如何(以及在何处)在实现文件中编写以下代码 [signInButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];在他的接口文件中。我们还需要导入任何与 UIButton 相关的文件吗 这就是你需要买书的原因。【参考方案2】:[signInButton addTarget:self 动作:@selector(按钮点击:) forControlEvents:UIControlEventTouchUpInside];
是实际代码,不应进入您的界面(.h 文件)。该接口用于原型设计和定义局部变量和道具。我猜你以编程方式执行此操作,如果是,则不需要 IBOutlet 和 IBAction。对于初学者,最好在界面生成器中执行此操作..
您的界面(.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
【讨论】:
嘿卢克感谢您的快速回复...抱歉愚蠢的问题,但我仍然是 iPhone 编程的新手...只是想知道您能否提供一个示例代码来说明如何编写 [signInButton addTarget:自我操作:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];在他的接口文件中 每个人都必须从某个地方开始。通常初学者使用界面构建器来执行此操作。然而,一旦你站起来,许多人就会像你所做的那样以编程方式提供这样的功能。请参阅我编辑的答案..【参考方案3】:只需清理并重新构建。它对我有用
【讨论】:
以上是关于错误:XCode 中 UIButton 的“[”标记 ....... 之前的预期说明符限定符列表的主要内容,如果未能解决你的问题,请参考以下文章
如果 UIButton 被选中,在 Swift (Xcode 9) 中取消选择另一个 UIButton
界面生成器中 UIButton 的标记值在 xcode 5 中消失了吗?
为啥在尝试将 UIPopover 附加到不同类中的 UIButton 时出现此构建错误?
如何在 Xcode 4 中正确创建调整为文本长度的 UIButton?