Objective-C.h文件不工作
我不熟悉Objective-C或者仅仅是C语言本身,所以如果这个问题非常简单或明显,请原谅我的无知。由于某种原因,.h文件的内容不能与main.m一起使用 如果我将此代码放在main.m的顶部,则程序编译良好: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
@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"