我是Objective C的初學者,試圖編寫一個簡單的程序來打印一個人的出生年份,但是有一個錯誤「找到了多個名爲setYear的方法不匹配的結果「,任何人都可以幫我弄清楚爲什麼會發生?多個方法命名'setYear'找到了不匹配的結果
//person.h
@interface person : NSObject
@property int year;
+ (id)person;
@property (readonly) NSString* summary;
@end
// main.m
#import "person.h"
@implementation person
@synthesize year;
+ (id)book{
person *somePerson = [[self alloc] init];
return somePerson;
}
- (NSString*)summary{
NSNumber* yearAsObject;
yearAsObject = [NSNumber numberWithInteger:self.year];
return [NSString stringWithFormat:@"Borned in %@.", yearAsObject];
}
@end
int main(){
@autoreleasepool {
id aperson = [person person];
[aperson setYear:@1970];
NSLog (@"Birth year: %@", [aperson summary]);
}
return 0;
}
一個錯誤是,* year *是一個int屬性。但是你傳遞* NSNumber *到* setYear:*方法。 – EmptyStack
嗨@EmptyStack,如何爲年份賦值?謝謝。 – wuyefeibao
將該行更改爲*** [aperson setYear:1970]; ***。請注意,@被刪除。 – EmptyStack