使用Xcode在objective-c中实现一个方法

时间:2013-08-30 10:16:54

标签: objective-c xcode

我目前正在关注苹果的“您的第一个iOS应用”教程。 不幸的是我有一个问题。

教程为我提供了一些代码:

- (IBAction)changeGreeting:(id)sender {
    self.userName = self.textField.text;
    NSString *nameString = self.userName;
    if ([nameString length] == 0) {
        nameString = @"World";
    }
    NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
    self.label.text = greeting;
}

xcode总是告诉我在“...(id)sender”之后必须有分号。

但是构建应用程序既不能使用分号,也不能使用分号。 我真的希望有人可以帮助我。感谢。

2 个答案:

答案 0 :(得分:1)

方法语法正确。

你在同一个文件中肯定会有一些语法错误。

如果您在实现(.m)文件中编写此代码(否则就是问题),请检查.m文件中的每个其他方法是否具有正确的语法。

此外,如果您还在接口文件(.h)中声明该方法,请检查其语法。它应该具有相同的实现签名。

这里的底线是代码的样子:

Whatever.h

@interface Whatever : NSObject

//... other stuff

- (IBAction)changeGreeting:(id)sender;

//... other stuff

@end

Whatever.m

@implementation

//... other stuff

- (IBAction)changeGreeting:(id)sender {
    self.userName = self.textField.text;
    NSString *nameString = self.userName;
    if ([nameString length] == 0) {
        nameString = @"World";
    }
    NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
    self.label.text = greeting;
}

//... other stuff

@end

答案 1 :(得分:0)

似乎你粘贴的代码没有错误。请在.h.Or上面显示你的方法声明或者上面的任何方法。可能你在那里缺少花括号。