10

私は Apple の Objective-C を使用したプログラミングを行っており、その過程で非常に簡単な演習を行っています。何らかの理由で、a というエラーが表示されますMethod Definition cannot be found。スペルと大文字をチェックしましたが、メソッドは.hファイルと.mファイルの両方にあります。なぜそれをしているのか理解できません。

具体的には、「Say Something」のメソッド定義が見つからないと言っています。コードは次のとおりです。

.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 に答える