您的位置:首页 > 移动开发 > IOS开发

IOS 委托实现方法

2015-08-20 12:07 337 查看

IOS 委托实现方法

先定义一个协议

@protocol protocolName;
-(void)funcName;
@end


声明一个遵守这个协议的类别

@interface ClassA:SuperClass<protocolName>


实现这个类别(因为这个类别实现了上方的协议,以后有需要就可以委托这个类)

@implemetation ClassA:SuperClass
-(void)funcName{
NSLog(@"实现");
}


声明委托类

注意:

*委托类自己不实现协议而是让它所委托的类来实现协议

*委托类不存在关键字,委托类只是普通的类

@interface DelegateClass:SuperClass {
}
@property (retain) id<protocolName> object;
-(void)delegatefunc;//这个方法可以隐藏被委托的对象方法
@end


实现委托类

@implemetation DelegateClass:SuperClass {
}
-(void)delegatefunc{
[_object.funcName];
}
@end


初始化类对象

*由于oc中所有对象都是指针,所以使用对象时均要进行初始化来分配内存

ClassA *a = [[ClassA alloc]init];
DelegateClass *b = [[DelegateClass alloc]init];


最终实现协议中的函数

b.object = a; //把协议函数交给a去做
[b delegatefunc]; //a做完后b拿到成果


如果不写delefunc函数的话 也可以实现

但是就无法隐藏真实函数名啦~

b.object = a; //把协议函数交给a去做
[b.object funcName];


欢迎指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios