2011-10-21 2 views
0

다음과 같은 변수 정의 방법의 차이점은 무엇입니까?intance 변수 및 @property 정의

@interface MyClass: NSObject 
{ 
    NSString *string; 
} 

@property (nonatomic, strong) NSString *string; 

@interface MyClass: NSObject 

@property (nonatomic, strong) NSString *string; 

그 @ 속성이 (@synthesize와 함께) 세터와 게터을 담당 알고 난 두 가지가 잘 작동 것을 알고있다. NSArray, NSDictionary에 대해서는 후자의 방법이 작동하지 않는다는 것도 알고 있습니다. 그러나 IB에 연결된 IBOutlets에서 작동합니다.

alloc/init에는 어떤 것이 있습니까? 아니면 내가 누락 된 개념이있을 수 있습니까?

감사합니다.

+0

현대 프로그램은 거의 명시 적으로 더 이상 인스턴스 변수를 선언해서는 안됩니다. 퍼포먼스의 이유로 ivar를 사용하려고해도, 나는 ivar을 자동으로 합성 할 속성을 생성 할 것입니다. 그리고 ivar이 자동으로 합성 될 때 구현에'@ synthesize' 행을 명시 적으로 포함시키지 않으면 ivar에 밑줄 ('_string')이 생깁니다. – Gavin

답변

관련 문제