ошибка: ожидаемый список спецификаторов-спецификаторов перед маркером '[' ....... для кнопки UIB в XCode - PullRequest
0 голосов
/ 06 декабря 2010

Я получаю следующую ошибку при создании кода для создания кнопок в XCode:

ошибка: ожидаемый список спецификаторов-спецификаторов перед маркером '[' ....... для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

Есть предложения по устранению ошибки?

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 06 декабря 2010

Вы помещаете код реализации в объявление интерфейса. Это не то, где это должно быть.

Кнопка должна быть объявлена ​​в интерфейсе, а затем реализована в блоке реализации в вашем файле .m.

Я предлагаю вам взять книгу по разработке под iOS, может быть, руководство Big Nerd Ranch по разработке под iPhone?

0 голосов
/ 06 июня 2013

Просто почистите и постройте снова.У меня работает

0 голосов
/ 06 декабря 2010

[signInButton addTarget: self Действие: @selector (buttonClicked :) 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...