代码之家  ›  专栏  ›  技术社区  ›  Mustafa

在Objective-C中理解协议继承

  •  12
  • Mustafa  · 技术社区  · 16 年前

    如果有人能解释协议继承背后的逻辑,我将不胜感激。e、 g.以下是什么意思(UITableView.h):

    @protocol UITableViewDelegate<NSObject, UIScrollViewDelegate> 
    

    下面的类实现不起作用。我有一个类View1(继承UIView),它有一个关联的协议。我还有另一个类,View2(它位于View1中)。现在我也想继承协议。谁能给我指一下正确的方向吗。

    第1类:

    @protocol View1Delegate;
    
    @interface View1 : UIView {
        id <View1Delegate> delegate;
        // . . .
    }
    
    @property (nonatomic, assign) id <View1Delegate> delegate; // default nil. weak reference
    
    @end
    
    @protocol View1Delegate <NSObject>
    - (void)View1DelegateMethod;
    @end
    
    @implementation View1
    
    @synthesize delegate;
    
    // . . .
    @end
    

    @protocol View2Delegate;
    
    @interface View2 : View1 {
        id <View2Delegate> delegate;
        // . . .
    }
    
    @property (nonatomic, assign) id <View2Delegate> delegate; // default nil. weak reference
    
    @end
    
    @protocol View2Delegate <NSObject>
    - (void)View2DelegateMethod;
    @end
    
    @implementation View2
    
    @synthesize delegate;
    
    // . . .
    @end
    
    2 回复  |  直到 16 年前
        1
  •  12
  •   Pang Ajmal PraveeN    9 年前

    与其说是继承,不如说是组成。

    @protocol UITableViewDelegate<NSObject, UIScrollViewDelegate> NSObject 协议,协议 UIScrollViewDelegate 协议,以及为 UITableViewDelegate View2Delegate 作为 @protocol View2Delegate <NSObject, View1Delegate> .

        2
  •  0
  •   user102008    15 年前

    这与Java中接口的继承完全相同( interface UITableViewDelegate extends NSObject, UIScrollViewDelegate interface UITableViewDelegate : NSObject, UIScrollViewDelegate )等等。