문제

@synthesize는 인스턴스 변수의 getter 및 setter를 자동 숨 웁니다.= _something 파트를 지정하면 iTters / setter의 특정 백업 변수를 사용하도록 컴파일러 / 런타임에 알려줍니다.

objective-c는 _something 변수를 getter / setter와 함께 사용하거나 인터페이스 / 구현 파일에서 해당 인스턴스 변수를 정의해야합니까?

도움이 되었습니까?

해결책

헤더 파일의 @property와 구현의 @SynTheSize의 @property가 기본 IVAR을 만들거나 IVAR이 헤더 파일에 나열되어야하는지 여부를 만듭니다. 예제, 헤더 파일 :

@interface SomeClass : NSObject {
    NSString *_someString;    // Is this needed???
}
@property NSString *someString;
.

및 구현에서 :

@synthesize someString = _someString;
.

해답은 유산 또는 현대 런타임을 사용하는지 여부에 따라 다릅니다. iOS에서는 항상 현대 런타임을 사용하고 있으므로 NSString *_somestring 줄이 필요하지 않지만이 질문은 Mac OS X에 관한 것입니다. Mac OS X 10.5 이상에서 64 비트 프로그램을 사용하는 경우 Mac OS X의 경우 현대 런타임, 그렇지 않으면 레거시 런타임을 사용하고 헤더 파일에 추가 줄이 필요합니다. 게시 된 몇 가지 잘못된 정보가 있었기 때문에 참조 : objective-c 런타임 프로그래밍 가이드 .

다른 팁

죄송합니다. 귀하의 질문의 일부를 잘못 읽었습니다.밑줄로 @SynTheSize 부분을 수행하면 모두 좋습니다.IVAR을 명시 적으로 정의 할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top