我是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
非常感谢任何帮助。谢谢
答案 0 :(得分:0)
在main.m文件的顶部,您需要导入Person类标题,就像在Person.m文件中一样。这使它可以看到定义。
#import "Person.h"