委托协议讲述比较详细


1 ios 协议 委托语法简介

IOS协议,同c#、java中的接口具有相同的功能,都是用来定义一个实现这个接口类的行为。
它是对一个对象行为的定义和一个对象功能的规范。
常用的关键字:
@required是必须实现的方法;
@optional是可选实现;

IOS委托:
委托是OC中的一种设计模式,实现这种模式,需要使用协议。
在ios中很多原生态的控件使用这种设计模式,例: UITableView控件。
在ios中委托的功能主要是将需要做的事情委托给其它对象去做。


2 ios 委托的demo实现

例: 两个类之间传值,一个类调用另外一个类中的方法 

 
@protocol userDelegate 
@required
- (void)userCount;
@optional
- (void)userMethod;
 
@end
下文将定义两个类 "user1"  "user2"

 
@interface user1 : NSObject
 
@end
 
@interface user2 : NSObject

@property (assign,nonatomic) id didUserDelegate;
 
@end
 实现其中的getUserCount方法:

@implementation user1
 
- (void)getUserCount{
    NSLog(@"user1中getUserCount的实现");
}
 
@end
 
@implementation user2
 
- (void)getUserCount{
    NSLog(@"user2中getUserCount的实现");
}
 
@end
调用:
user1 *user1=[[user1 alloc]init];
 
user2 *user2=[[user2 alloc]init];
 
[user2 getUserCount];
 
[user1 getUserCount];

user2.didBookDelegate=user1;
[user2.didBookDelegate getUserCount];