我创建了一个简单的Person.h类:
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int age;
int height;
}
-(void) print;
-(void)setAge: (int) a;
-(void)setHeight: (int) h;
@end
它在Person.m中的实现:
#import "Person.h"
@implementation Person
-(void) print
{
NSLog(@"You are %i years old, and %i feet tall", age, height);
}
-(void)setAge: (int) a
{
age = a;
}
-(void)setHeight: (int) h
{
height = h;
}
@end
这两个文件都在/ source文件夹中。
现在在主文件test2.m中:
#import <Foundation/Foundation.h>
#import <Person.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Person *p1 = [[Person alloc] init];
Person *p2 = [[Person alloc] init];
[p1 setAge:30];
[p1 setHeight:6];
[p2 setAge:25];
[p2 setHeight:5];
[p1 print];
[p2 print]
[pool drain];
return 0;
}
我在Person.h的import语句中收到“没有这样的文件或目录”错误。
因此,引用Person的行也会导致错误。
为什么找不到该文件?
这是一个使用基础库的xcode命令行项目。
答案 0 :(得分:3)
改变这个:
#import <Person.h>
对此:
#import "Person.h"
哦,你在这里错过了一个分号:
[p2 print]
答案 1 :(得分:1)
@Blankman
如果使用#import <Person.h>
意味着编译器将查找存储其类的类。如果使用#import "Person.h"
,编译器将在项目文件夹中查找该类。