错误:预期的标识符或'('''''''之前的标记

时间:2011-01-31 12:43:46

标签: iphone objective-c ios4

您好  我收到一个错误,错误信息就像 /IphoneTextFieldViewController.h:13:错误:预期标识符或'('''''''''之前的标记

实际上我没有得到它为什么以这种方式显示,我必须在.h文件中发布代码和行号13({ - 此冒号行显示错误),请帮助我这个

提前致谢

.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文件

//
//  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 个答案:

答案 0 :(得分:5)

.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;

和.m

-(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];
}

答案 1 :(得分:3)

删除;在{...

之前

应该是

 -(IBAction)changrGreeting{

其次从界面中删除方法定义...只需保留方法声明...

干杯

答案 2 :(得分:2)

为什么你的界面(.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)

答案 3 :(得分:0)

如果您从其他位置复制并粘贴方法名称,也会发生这种情况。例如,当我构建其API的Id喜欢与Apples一致的框架时,我会经常查找有问题的类,只需复制“任务”部分作为起点。这个问题是有些网站,比如Apples文档,会显示EN DASH而不是编译器所期望的连字符。