Objective-C: Use of undeclared identifier

2019-09-21 03:05发布

问题:

I know I'm probably making a stupid mistake but I'm working my way through the book Programming in Objective-C and I'm getting a couple of errors but I cant seem to find the mistake.

person.m

#import "person.h"

@implementation person{
    int age;
}
-(void) print{
    NSLog(@"the person is %i years old", age);

}
-(void) setAge:(int)a{
    age = a;
}

@end

person.h

#import <Foundation/Foundation.h>

@interface person : NSObject
-(void) print;
-(void) setAge: (int)a;
@end

main

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        person *newPerson; //error is on this line use of undeclared identifier:person


    }
    return 0;
}

回答1:

You need to import person.h header in all files you want to use Person class, so add

#import "person.h"

line to your main file