ошибка: ожидаемый идентификатор или маркер '(' before '{' - PullRequest
0 голосов
/ 31 января 2011

Привет, я получил одну ошибку, сообщение об ошибке похоже на /IphoneTextFieldViewController.h:13: ошибка: ожидаемый идентификатор или '(' before '{' token

на самом деле не понимаю, почему это отображается таким образоми я должен разместить ниже код и строку номер 13 в файле .h ({- эта строка двоеточия показывает ошибку), пожалуйста, помогите мне в этом

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

.h файл

#import <UIKit/UIKit.h>

@interface IphoneTextFieldViewController : UIViewController {

    IBOutlet UITextField *textField;
    IBOutlet UITextField *textField1;
    IBOutlet UITextField *textField2;

    NSString *String;

}
@property(nonatomic, retain)IBOutlet UITextField *textField;
@property(nonatomic, retain)IBOutlet UITextField *textField1;
@property(nonatomic, retain)IBOutlet UITextField *textField2;
@property(nonatomic, retain)IBOutlet NSString *String;



-(IBAction)changrGreeting;
{                                13: error: expected identifier or '(' before '{' token





    self.String=textField.text;
    NSString *nameString=String;

    self.String=textField1.text;
    NSString *nameString1=String;

    if ([nameString length]== 0)
    {
        nameString = @" ";
    }

    if([nameString1 length]== 0)
    {
        nameString1=@" ";
    }

    textField2.text=[NSString stringWithFormat:@"%@ %@",textField.text,textField1.text];

}

@end

.m file

//
//  IphoneTextFieldViewController.m
//  IphoneTextField
//
//  Created by Span on 1/31/11.
//  Copyright __MyCompanyName__ 2011. All rights reserved.
//

#import "IphoneTextFieldViewController.h"
#import "IphoneTextFieldAppDelegate.h"

@implementation IphoneTextFieldViewController

@synthesize textField;
@synthesize textField1;
@synthesize textField2;
@synthesize String;

-(IBAction)changrGreeting;
{
    self.String=textField.text;
    NSString *nameString=String;

    self.String=textField1.text;
    NSString *nameString1=String;

    if([nameString length]==0)
    {
        nameString=@" ";
    }

    if([nameString1 length]==0)
    {
        nameString1=@" ";
    }

    textField2.text=[NSString stringWithFormat:@" %@ %@",textField.text,textField1.text];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [textField resignFirstResponder];
    [textField1 resignFirstResponder];
    [super touchesBegan:touches withEvent:event];

}




/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        // Custom initialization
    }
    return self;
}
*/

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/


/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
}
*/


/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [textField release];
    [textField1 release];
    [textField2 release];
    [String release];

    [super dealloc];
}

@end

Ответы [ 4 ]

5 голосов
/ 31 января 2011

.h файл должен выглядеть как

    #import <UIKit/UIKit.h>

    @interface IphoneTextFieldViewController : UIViewController {
    IBOutlet UITextField *textField;
    IBOutlet UITextField *textField1;
    IBOutlet UITextField *textField2;

    NSString *String;

}
@property(nonatomic, retain)IBOutlet UITextField *textField;
@property(nonatomic, retain)IBOutlet UITextField *textField1;
@property(nonatomic, retain)IBOutlet UITextField *textField2;
@property(nonatomic, retain)IBOutlet NSString *String;

-(IBAction)changrGreeting;

и в .м

-(IBAction)changrGreeting
{
    self.String=textField.text;
    NSString *nameString=String;

    self.String=textField1.text;
    NSString *nameString1=String;

    if([nameString length]==0)
    {
        nameString=@" ";
    }

    if([nameString1 length]==0)
    {
        nameString1=@" ";
    }

    textField2.text=[NSString stringWithFormat:@" %@ %@",textField.text,textField1.text];
}
3 голосов
/ 31 января 2011

Удалить;перед {...

должно быть

 -(IBAction)changrGreeting{

Во-вторых, удалите определение метода из интерфейса ... Просто сохраните объявление метода ...

Cheers

2 голосов
/ 31 января 2011

почему у вас есть реализация в вашем интерфейсе (.h)?

{
    self.String=textField.text;
    NSString *nameString=String;
    self.String=textField1.text;
    NSString *nameString1=String;
    if ([nameString length]== 0)
    {
        nameString = @" ";
    }
    if([nameString1 length]== 0)
    {
        nameString1=@" ";
    }
    textField2.text=[NSString stringWithFormat:@"%@ %@",textField.text,textField1.text];
}

это не принадлежит там. Удалить его.

и удалите ; позади -(IBAction)changrGreeting; в вашей реализации (.m)

0 голосов
/ 16 апреля 2013

Это также может произойти, если вы копируете и вставляете имена методов откуда-то еще.Например, когда я создаю фреймворки, чьи идентификаторы API хотели бы быть совместимыми с яблоками, я часто смотрю на рассматриваемый класс (ы) и просто копирую раздел «Задачи» в качестве отправной точки.Проблема в том, что на некоторых сайтах, например в документации Apple, будет отображаться EN DASH, а не дефис, ожидаемый компилятором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...