错误: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?

如何使用 Storyboard 在 Xcode6 中创建 UIButton 连接?

Xcode11 - UIButton 等控件高度为 48,仅在 XR/XSMAX 设备中的 AppDelegate 中