简单的命令行object-c项目,它找不到我的Person.h类?

时间:2011-01-01 23:15:09

标签: objective-c xcode

我创建了一个简单的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命令行项目。

2 个答案:

答案 0 :(得分:3)

改变这个:

#import <Person.h>

对此:

#import "Person.h"

哦,你在这里错过了一个分号:

[p2 print]

答案 1 :(得分:1)

@Blankman

如果使用#import <Person.h>意味着编译器将查找存储其类的类。如果使用#import "Person.h",编译器将在项目文件夹中查找该类。