이렇게하는 방법에는 여러 가지가 있습니다.
@interface Vehicle : NSObject
-(void)logDetails __attribute__((objc_requires_super));
@end
@implementation Car
-(void) logDetails {
} // WARNING: Method possibly missing a [super logDetails] call
예를 들어, 세부 사항을 기록 차량에 대한 프로토콜을 작성하는 것입니다 유사한 결과를 달성하기위한 다른 방법 : 아마도 가장 쉽고 간단한 방법은 메서드 선언에 __attribute__((objc_requires_super))
를 추가하는 것입니다
@protocol VehicleLogger <NSObject>
-(void)logDetails;
@end
Vehicle
헤더 파일에 있습니다. 그런 다음 세부 정보를 기록하려는 Vehicle
의 모든 하위 클래스에서 해당 프로토콜을 준수하는지 확인하십시오.
@implementation Car <VehicleLogger>
그런 식으로 컴파일러에서 해당 메소드를 구현하는 경고 메시지가 표시됩니다. 의 구현, 다음 단순히에서 그 방법을 구현하지 않는 : 그리고 구현에 당신은 super
'반면에 당신이 원하는 모든 Vehicle
를 호출하는 모든 서브 클래스 인 경우
-(void)logDetails {
[super logDetails];
//Do more stuff here, if I want
}
이 logDetails
의의 구현'호출 할 수 있습니다 아강.
만약 내가 이것을 얻었 으면하자 : 당신은'Vehicle'의 서브 클래스가 항상'Vehicle'의'logVehicleDetail' 구현을 호출하기를 원합니 까? – KerrM
바로 그게 내가 원하는 것. – Ideveloper