내 TheTabBarController에서 UINavigationControllerDelegate 프로토콜을 준수하지 않고 moreNavigationController.delegate에 클래스를 할당 할 수 있습니다.프로토콜을 따르지 않고 구현하는 방법
// without conforming to protocol, <UINavigationControllerDelegate>
@interface TheTabBarController : UITabBarController
self.moreNavigationController.delegate = self;
단지 다음과 같은 경고를 발생 시키지만 성공적으로 컴파일됩니다. '* const를 __strong TheTabBarController'
프로토콜의 방법은 오류없이 실행시에 호출 호환되지 않는 유형에서 'ID'로 지정
. 일부보기 컨트롤러에 대해 더 많은 탐색 모음을 숨기는 데 사용합니다.
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
이렇게 알고 싶습니다.이 법적 또는 안전합니다. 나중에 충돌하거나 메모리가 누출됩니까? 이것이 의미 론적으로 어떻게 허용 될 수 있는가? 인터페이스와 프로토콜에 정의되지 않은 메소드가 어떻게 준수되지 않더라도 런타임은 메소드를 어떻게 해결할 수 있습니까? 또는 UITabBarController는 프로토콜을 준수하는 숨겨진 범주를 사용합니까?