簡體   English   中英

錯誤:預期標識符或'{'標記前的'('

[英]error: expected identifier or '(' before '{' token

嗨,我收到一個錯誤,錯誤消息類似於/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

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

去除 ; 之前 {...

它應該是

 -(IBAction)changrGreeting{

其次,從接口中刪除方法定義...只需保留方法聲明...

干杯

為什么在界面(.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)

如果您從其他地方復制並粘貼方法名稱,也會發生這種情況。 例如,當我在構建其API的ID與Apple一致的框架時,我通常會查找相關的類,並僅復制“任務”部分作為起點。 問題在於,某些站點(例如Apple文檔)將顯示EN DASH而不是編譯器期望的連字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM