`[super viewDidLoad]`규칙
구현 전과 구현 후에 [super viewDidLoad]가 호출 된 예제 코드가 있습니다.
다른 많은 토론에서 볼 수 있듯이 항상 super에게 전화 할 필요는 없습니다. 호출 할 때 코딩 전후에 예상됩니까?
이것은 super의 구현이하는 일에 따라 결과를 가질 수 있습니다. 비록 당신의 것을 작성하기 위해 super의 구현을 알 필요는 없습니다.
물론 이것은 모든 UIViewControllers 델리게이트 메서드 (willAppear, didAppear 등)에 적용됩니다.
이견있는 사람?
내 경험 법칙은 초기화와 관련된 작업을 수행하는 경우 항상 수퍼 클래스의 메서드를 먼저 호출하는 것입니다 (아주 호출하려는 경우). 이렇게하면 나중에 메서드에서 사용할 수있는 설정을 수행 할 수있는 기회가 수퍼 클래스에 제공됩니다. 파괴와 관련된 일을하고 있다면 슈퍼 클래스의 메서드를 마지막으로 호출하십시오. 이렇게하면 메서드를 실행하는 동안 개체의 상태에 의존 할 수 있습니다. 마지막으로, 사례별로 다른 사례를 처리합니다. 예를 들어, 이벤트를 처리하는 경우 먼저 이벤트를 처리하고 이벤트를 처리하지 않기로 선택했거나 어떻게 든 변경하여 이벤트를 전달하려는 경우에만 슈퍼 클래스의 메서드를 호출하고 싶을 것입니다. 체인.
두 개의 클래스, 부모와 자식이 있다고 가정 해 봅시다. 자식은 부모로부터 상속됩니다. 문자열을 반환하는 greet라는 메서드가 있습니다.
상위 메소드는 다음과 같습니다.
암호:
-(NSString *)greet {
return @"Hello";
}
우리는 아이가 부모로부터 배우기를 원합니다. 그래서 우리는 super를 사용하여 엄마가 어떻게 인사하는지 인사하지만 우리 자신의 작은 추가 사항도 있습니다.
코드 : // 부모로부터 상속
-(NSString *)greet {
NSString *parentGreeting = [super greet];
return [parentGreeting stringByAppendingString:@", Mommy"]
}
그래서 이제 부모는 "안녕하세요"라고 인사하고 아이는 "안녕하세요, 엄마"라고 인사합니다. 나중에 "Hi"만 반환하도록 부모의 인사를 변경하면 두 클래스 모두 영향을 받고 "Hi"와 "Hi, Mommy"가 표시됩니다.
super는 수퍼 클래스에 정의 된대로 메소드를 호출하는 데 사용됩니다. 하위 클래스에 의해 재정의 된 메서드에 액세스하는 데 사용되므로 클래스가 부모 클래스가 구현하는 메서드 주위에 자체 코드를 래핑 할 수 있습니다. 어떤 종류의 상속도 수행하는 경우 매우 편리합니다.
참고 URL : https://stackoverflow.com/questions/844195/super-viewdidload-convention
'IT TIP' 카테고리의 다른 글
WPF 응용 프로그램을 전체 화면으로 만들기 (표지 시작 메뉴) (0) | 2020.12.06 |
---|---|
Python에서 rm -rf를 사용하는 가장 쉬운 방법 (0) | 2020.12.04 |
SQL 주석 헤더 예 (0) | 2020.12.04 |
TypeCasting의 성능 (0) | 2020.12.04 |
좋아하는 SQLPLUS 팁과 요령 (0) | 2020.12.04 |