Я начинаю 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
hi @EmptyStack, как присвоить значение году? Благодарю. – wuyefeibao
Измените эту строку на *** [aperson setYear: 1970]; ***. Обратите внимание, что @ удаляется. – EmptyStack