2014-01-12 32 views
-1

對於這個問題,我是Objective-C或者C語言的新手,所以如果這個問題非常容易或者明顯,那麼請原諒我的無知。出於某種原因,我的.h文件的內容不符合我的main.m工作Objective-C .h文件不能正常工作

如果我在我的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

在我看來,你不會導入.h文件。 –

回答

0

在main.m文件的頂部,您需要導入Person類標題,就像在Person.m文件中一樣。這使它能夠看到定義。

#import "Person.h" 
+0

謝謝!這就是它。我知道我錯過了一些明顯的東西。乾杯! – user3187751