Objective-C .h文件无法正常工作

时间:2014-01-12 17:03:31

标签: objective-c

我是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;
}

Person.h

#import <Foundation/Foundation.h>

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

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

Person.m

#import "Person.h"

@implementation Person

- (NSString *) firstname {
    return _firstName;
}

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

@end

非常感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:0)

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

#import "Person.h"