• objective处委托协议


    满足正式协议  protocol 的委托只能执行协议中的方法,

    #import <Foundation/Foundation.h>@protocol GameBoardControllerDelegate <NSObject>
    @optional
    - (NSInteger)getColumns;
    - (NSInteger)getRows;
    @end
    #import "cocos2d.h"
    #import "GameBoardControllerDelegate.h"    //MVC中的C
    @class GameBoard;
    @class GameBoardView;
    
    @interface GameBoardController : CCNode <GameBoardControllerDelegate>
    {
        GameBoardView *_view;
    }
    @property(nonatomic,retain) GameBoard *gameBoard;    //MVC中的M
    @property(nonatomic,retain) GameBoardView *view;   //MVC中的V
    
    - (NSInteger)getColumns;
    - (NSInteger)getRows;
    @end
    #import "cocos2d.h"
    #import "GameBoardControllerDelegate.h"
    @interface GameBoardView : CCNode
    {
        id  <GameBoardControllerDelegate>_delegate;     //满足正式协议的传过来的  GameBoardController指针
    } @property(nonatomic,assign)id <GameBoardControllerDelegate> delegate; - (void)initView; @end
    #import "GameBoardView.h"
    @implementation GameBoardView
    @synthesize delegate = _delegate;
    
    - (void)initView
    {
        for (int i = 0; i <[_delegate getRows]; i++) {
            for (int j = 0; j< [_delegate getColumns] ; j++) {
                // position and render game board spaces
            }
        }
    }
    
    @end

    注:如果 delegate 不满足协议,直接传递  GameBoardController指针

      则delegate 可以执行  GameBoardController  中的一切方法,也可以调用其的属性变量

     
  • 相关阅读:
    32-数据链路层,PPP协议
    31-NAT
    30-安全技术,ACL
    ensp实验:配置DHCP
    29-应用层,DHCP协议
    ensp实验:配置stp
    28-STP,选举过程、端口状态、计时器、拓扑变化
    27-交换机,STP
    26-交换机,GVRP
    Manually APK Downgrade for split apks
  • 原文地址:https://www.cnblogs.com/pengyingh/p/2509067.html
Copyright © 2020-2023  润新知