다중 상속은 Objective-C의 기능이 아닙니다. UITextView 하위 클래스와 UIView 하위 클래스 모두 공통 프로토콜을 구현할 수 있습니다. 물론, 이는 코드를 복제해야한다는 것을 의미합니다.
나는 수 있습니다 당신이 카테고리로 원하는 효과를 얻을 수 있다고 믿습니다. UITextView가있는 UIView의 하위 클래스이기 때문에 당신은 UITextView뿐만 아니라 당신의 UIView 하위에 적용됩니다 (NSHipster에서 차용) 런타임 레버리지 objc/runtime.h
#import "UIView+MyView.h"
#import <objc/runtime.h>
static const void *IndieBandNameKey = &IndieBandNameKey;
@implementation UIView (MyView)
@dynamic indieBandName;
- (NSString *)indieBandName {
return objc_getAssociatedObject(self, IndieBandNameKey);
}
- (void)setIndieBandName:(NSString *)indieBandName {
objc_setAssociatedObject(self, IndieBandNameKey, indieBandName, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end
에서 당신이 UIView의 범주에 넣어 방법을 속성을 추가 할 수 있습니다 아강. 또한 카테고리 메서드에서 이러한 동적으로 생성 된 속성에 액세스 할 수 있으므로 이제 선언 한 "멤버 변수"를 활용할 수 있습니다.
범주 및 단일 상속이 도구입니다. 다른 목표를 달성하는 방법을 알아 보려면 세부 사항을 살펴 봐야합니다. 그러나 다른 상속과 같은 대안은 없습니다. 그것이 당신이 원하는 것이라면. – danh