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];
欢迎指正