2014-10-22 5 views
0

객체에 없습니다. 따라서 OC 프로그래밍에 대해 매우 새로 습득했습니다. 프런트 엔드 배경 (예 : HTML/CSS/JavaScript ...)에서 왔기 때문에 프로그래밍의 기본 개념을 이해했습니다.)코코아 콘솔 응용 프로그램 - 속성이

기본적으로 콘솔 응용 프로그램을 만들었습니다. FooClass입니다.

FooClass.h

#import "FooClass.h" 

@implementation FooClass 

@synthesize username = _username; 

- (instancetype) init 
{ 
    self = [super init]; 

    if (self) { 

    } 

    return self; 
} 

- (NSString *) username 
{ 
    return _username; 
} 

- (void) setUsername:(NSString *)username 
{ 
    _username = username; 
} 

@end 

그리고 main.m 파일에

#import <Foundation/Foundation.h> 

@interface FooClass : NSObject 

@property (strong, nonatomic) NSString *username; 

- (NSString *) username; 
- (void) setUsername:(NSString *)username; 

@end 

FooClass.m, 응용 프로그램의 부트 스트랩.

#import <Foundation/Foundation.h> 
#include "FooClass.h" 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 

     // insert code here... 
     NSLog(@"Hello, World!"); 

     FooClass *foo = [[FooClass alloc] init]; 
     foo.username = @"a"; 
    } 
    return 0; 
} 

엑스 코드는 유형 FooClass의 객체에 속성을 이름를 찾을 수 없습니다 알려줍니다. 그리고 나는 그것에 대해 정말로 모른다. 어떤 사람이 도울 수 있니?

답변

1

나는 답변을 게시하는 데 조금 늦다. 다음은 고려해야 할 몇 가지 사항입니다.

  1. 귀하는 property username입니다. setter 및 getter에 대한 메서드를 만들 필요는 없습니다. 컴파일러가 자동으로 생성합니다. 단순히 두 문장을 제거하십시오.

  2. synthesize.m으로 설정할 필요는 없습니다.

  3. #include 대신 #import을 사용하십시오. importinclude에 비해 다른 파일에서 직접 또는 간접적으로 파일을 추가하려고해도 복사본을 하나만 가져옵니다.