2
iOS 7 프로젝트에서 언더 스코아 iVars가 자동으로 생성 된 것 같지 않은데 왜 그런지 궁금합니다. 내 설정 :Xcode 5.1.1 자동 앵커 언더 바어 없음
에서 MyClass.h이 선언되지 않은 식별자의 사용 결과
@property (readonly) NSNumber *aNumber;
MyClass.m
@interface MyClass()
@property (readwrite, strong) NSNumber *aNumber;
@end
@implementation MyClass
(...)
- (NSNumber *)aNumber {
return _aNumber;
}
- (void)setANumber:(NSNumber *)aNumber {
_aNumber = aNumber;
}
@end
: '_aNumber'.
왜 그렇습니까? 나는 언더 스코어 인 iVars가 항상 자동으로 합성 될 것이라고 생각했다. 내가 사용하는 학급 확장 때문인가요? 내가 @synthesize aNumber = _aNumber;
에 넣으면 (분명히) 작동합니다.
이유는 필요없는 경우 중복 ivar을 생성하는 것을 피하기 위해서입니다. –
그 이유는 사용자 정의 게터 메소드를 작성했기 때문이며 자동 합성은이 경우에 사용자를 위해 아무 것도 생성하지 않기 때문에 수동으로해야합니다. – holex