Проект простой объект командной строки, он не может найти мой класс Person.h? - PullRequest
1 голос
/ 02 января 2011

Я создал простой класс 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 появляется ошибка «Нет такого файла или каталога».

Ив результате строки, ссылающиеся на Person, также приводят к ошибкам.

Почему файл не может быть найден?

Это xcode, проект командной строки,используя фундамент lib.

Ответы [ 2 ]

3 голосов
/ 02 января 2011

Измените это:

#import <Person.h>

На это:

#import "Person.h"

О, и вы пропустили точку с запятой здесь:

[p2 print]
1 голос
/ 02 января 2011

@ Бланкмэн

если вы используете #import <Person.h>, это означает, что компилятор будет искать класс, где хранятся его классы. если вы используете #import "Person.h", компилятор будет искать в папке вашего проекта класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...