ios 代理
来源:互联网 发布:博时大数据100好买 编辑:程序博客网 时间:2024/06/06 17:25
我太忙了,雇用了一位助手,并安排了一定任务A,任务B,任务C,.. 给他。 一 接到活,属于任务A,B,C...之类的活,我自己不做,直接抛给助手去完成。
那么,“我”就是A Object.
我的助手是可以实现我给他的任务A,B,C,..的,这些任务就是协议 protocol 。由我助手来实现协议所声明的任务。
协议 Protocol :(类似java的接口, C++的虚基类)
我说下我的理解。object-c 里没有多继承。那么又要避免做出一个对象什么都会(super class monster,huge ,super,waste)一个超能对象本身是否定了面向对象的概念和真谛了。为了让代码更简洁,条理更清楚,可以将部分职责分离。
协议本身没有具体的实现。只规定了一些可以被其它类实现的接口
#import <Foundation/Foundation.h>
@protocol MyProtocol <NSObject>
@required
-(void)testProFun;
@optional
-(void)testProFun2;
@end
delegate 总是被定义为 assign @property
#import <Foundation/Foundation.h>
#import "MyProtocol.h"
@interface MyProtocolRef : NSObject
{
}
@property(nonatomic,assign)id<MyProtocol>delegate;
@end
@implementation MyProtocolRef
@synthesize delegate=_delegate;
-(id)init
{
}
-(void)callDelegate
{
}
@end
这样我们就在MyProtocolRef
//
#import <Foundation/Foundation.h>
#import "MyProtocol.h"
@class MyProtocolRef;
@interface MyProtocolImp : NSObject<MyProtocol>
{
}
@end
//
//并实现MyProtocol中约定的行为
#import "MyProtocolImp.h"
#import "MyProtocolRef.h"
@implementation MyProtocolImp
-(id)init
{
}
-(void)dealloc
{
[super dealloc];
}
-(void)callRef
{
}
//imp
-(void)testProFun
{
}
//imp
-(void)testProFun2
{
}
@end
- iOS代理
- iOS 代理
- ios代理
- iOS 代理
- IOS代理
- iOS代理
- iOS代理
- ios 代理
- IOS代理
- IOS代理
- iOS 代理
- IOS -- UITextFieldDelegate委托代理
- IOS 设置代理
- IOS代理浅析
- iOS代理与协议
- ios 代理传值
- iOS 代理传值
- IOS委托代理代码
- velocity 利用 HttpServletRequest 参数
- 定位
- 第十三周项目1——分数类中的运算符重载
- AFNetwork 作用和用法详解
- 临时
- ios 代理
- 微信扫码支付+Asp.Net MVC
- 第十三周项目1分数类的重载
- 一些正则
- Swift资源库--Map方法
- 第十三周项目1:阅读程序,并写出运行结果(3)纯虚函数
- 点-圆-圆柱类族的设计
- 使用putty可以访问centos的中文内容
- 什么是DPDK