Objective-C.h文件不工作

Objective-C.h文件不工作,objective-c,Objective C,我不熟悉Objective-C或者仅仅是C语言本身,所以如果这个问题非常简单或明显,请原谅我的无知。由于某种原因,.h文件的内容不能与main.m一起使用 如果我将此代码放在main.m的顶部,则程序编译良好: @interface Person : NSObject{ NSString *_firstName; NSString *_lastName; int _age; } - (NSString *) firstname; - (void) setFirstName: (NSString

我不熟悉Objective-C或者仅仅是C语言本身,所以如果这个问题非常简单或明显,请原谅我的无知。由于某种原因,.h文件的内容不能与main.m一起使用

如果我将此代码放在main.m的顶部,则程序编译良好:

@interface Person : NSObject{
NSString *_firstName;
NSString *_lastName;
int _age;
}

- (NSString *) firstname;
- (void) setFirstName: (NSString *) newFirstName andLastName:(NSString *)newLastName;

@end
然而,person.h文件中的相同代码给了我以下错误:使用未声明的标识符person

这是我所有文件的代码

main.m

#import <Foundation/Foundation.h>


//@interface Person : NSObject{
//    NSString *_firstName;
//    NSString *_lastName;
//    int _age;
//}
//
//- (NSString *) firstname;
//- (void) setFirstName: (NSString *) newFirstName andLastName:(NSString *)newLastName;
//
//@end

//NSString *firstName = @"Thomas";
//NSString *lastName = @"Eggenberger";
//int age = 29;



int main(int argc, const char * argv[])
{

    @autoreleasepool {
        Person *person = [[Person alloc] init];

        [person setFirstName:@"Thomas" andLastName:@"Eggenberger"];


    //        NSLog(@"Hello there, %@ %@, you are %d years old",firstName, lastName, age);

    }
    return 0;
}

非常感谢您的帮助。谢谢

在主.m文件的顶部,您需要导入Person类标题,就像在Person.m文件中一样。这使它能够看到定义

#import "Person.h"

在我看来,您没有导入.h文件。谢谢!就是这样。我知道我错过了一些明显的东西。干杯
#import "Person.h"

@implementation Person

- (NSString *) firstname {
    return _firstName;
}

- (void) setFirstName:(NSString *)newFirstName andLastName:(NSString *)newLastName{
    _firstName = newFirstName;
    _lastName = newLastName;
}

@end
#import "Person.h"