10

我正在通过 Apple 的 Objective-C 编程,并在此过程中进行非常简单的练习。出于某种原因,我收到一条错误消息,说Method Definition cannot be found. 我检查了拼写和大写,该方法在.h.m文件中。无法弄清楚它为什么这样做。

具体来说,它是说找不到“说点什么”的方法定义。这是代码:

。H

#import <Foundation/Foundation.h>

@interface XYZPerson : NSObject

@property NSString *firstName;
@property NSString *lastName;
@property NSDate *dateOfBirth;

- (void)saySomething;
- (void)sayHello;
- (void)sayShutUp;
- (void)sayHola;
+ (id)person;


@end

.m

#import "XYZPerson.h"

@implementation XYZPerson


- (void)saySomething:(NSString *)greeting {
    NSLog(@"%@", greeting);
}

- (void)sayHello {
[self saySomething:@"Hello, World!"];
}

- (void)sayHola {
[self saySomething:@"Hola, Amigos!"];
}
- (void)sayShutUp {
[self saySomething:@"Shut up!"];
}
+ (id)person {
return [[self alloc]init];
}


@end
4

1 回答 1

19

一个名为saySomething:的方法不同于一个名为 的方法saySomething。前者需要论证,后者不需要。您必须更改头文件中的声明以包含参数。即改变:

- (void)saySomething;

到:

- (void)saySomething:(NSString *)greeting;

使其与您的实现相匹配。

于 2012-12-20T00:57:54.947 回答