내가 상속 코드베이스 일하고을 다음과 같은 경고를 해결하기 위해 노력 :지정 초기화 경고 initWithCoder에서 다른 초기화 호출 할 때 :
전용 '슈퍼'에 지정된 초기화를 호출해야
지정 초기화 슈퍼 클래스의 지정된 초기화에 '슈퍼'전화 누락 지정 초기화 코드는
입니다
: ,- (id)initWithCoder:(NSCoder *)aDecoder {
self = [self initWithFrame:[CDCUtility getScreenBounds]]; //switching to super breaks
if (self) {
}
return self;
}
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setArray:[NSMutableArray new]];
[self setButtonArray:[NSMutableArray new]];
_graphicEQ = [[CDCEffectsGraphicEQ alloc] initWithFrame:CGRectMake((1024/2) - (811/2), 60, 860, 255)];
[self addSubview:_graphicEQ];
[_graphicEQ setDelegate:self];
[self addBypassButtonToView];
[self addFlatButtonToView];
[self addScrollView];
}
return self;
}
그래서 나는 밖으로 만들 수있는의 개발자는 슈퍼 클래스 initWithCoder:
이 (이것은 UIView
입니다) 사용자 정의 UI 뷰를 생성하는 사용자 정의 인수를 사용하여이 initWithFrame:
매개 변수에로드하고, 전달 될 수 있도록 무효화한다.
나는 [self initWithFrame:]
의 '[self initWithFrame:]
'이 경고를 해결하지만 initWithCoder:
에서 [super initWithFrame:]
으로 변경되는 것을 보았지만보기를 올바르게로드하려면 여기에서 필요한 기능을 호출하지 않아도됩니다.
정상적으로 작동합니다. 가능한 모든 경고를 자르고 싶었 기 때문에이 문제를 해결하기 위해 변경이 가능한지 궁금한가요?
부분적으로하지만 난 배경 색상과 다른 스타일, 왜 어떤 생각 같은 것들을 느슨하게 작품? 나는 슈퍼 클래스가 현재 프레임 요소를 설정하고 있다고 가정한다. – jcad