用oc实现委托机制
2013-12-05 08:49
162 查看
委托实例:
// main.m
//构成一个代理delegate需要三种文件 1个雇主类a 1个委托类b 1个委托协议c protocal
#import <Foundation/Foundation.h>
#import "Student.h"
#import "Teacher.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Student *stu=[[[Student alloc]init]autorelease];
Teacher *teacher=[[[Teacher alloc]init]autorelease];
//说明student的委托对象
stu.delegate =teacher;
[stu askQuestion:nil];
}
return 0;
}
// Student.h
#import <Foundation/Foundation.h>
#import "Costum.h"
@interface Student : NSObject
//声明student具有委托属性,且协议是委托协议
@property (assign,nonatomic) id<Costum> delegate;
- (void) askQuestion:(id) sender;//雇主类提出问题
@end
// Student.m
#import "Student.h"
@implementation Student
- (void) askQuestion:(id)sender
{
NSLog(@"student asked questions");//雇主类提出问题
[_delegate answerQuestion:nil];//委托要调用的方法,即解决问题的办法
}
@end
// Teacher.h
#import <Foundation/Foundation.h>
#import "Costum.h"
@interface Teacher : NSObject <Costum>
- (void) answerQuestion: (id)sender;
@end
// Teacher.m
#import "Teacher.h"
@implementation Teacher
- (void) answerQuestion:(id)sender
{
NSLog(@"teacher answer questions");
}
@end
// Costum.h
#import <Foundation/Foundation.h>
@protocol Costum <NSObject>
//建立委托协议,说明委托内容
- (void) answerQuestion:(id) sender;
@end
// main.m
//构成一个代理delegate需要三种文件 1个雇主类a 1个委托类b 1个委托协议c protocal
#import <Foundation/Foundation.h>
#import "Student.h"
#import "Teacher.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Student *stu=[[[Student alloc]init]autorelease];
Teacher *teacher=[[[Teacher alloc]init]autorelease];
//说明student的委托对象
stu.delegate =teacher;
[stu askQuestion:nil];
}
return 0;
}
// Student.h
#import <Foundation/Foundation.h>
#import "Costum.h"
@interface Student : NSObject
//声明student具有委托属性,且协议是委托协议
@property (assign,nonatomic) id<Costum> delegate;
- (void) askQuestion:(id) sender;//雇主类提出问题
@end
// Student.m
#import "Student.h"
@implementation Student
- (void) askQuestion:(id)sender
{
NSLog(@"student asked questions");//雇主类提出问题
[_delegate answerQuestion:nil];//委托要调用的方法,即解决问题的办法
}
@end
// Teacher.h
#import <Foundation/Foundation.h>
#import "Costum.h"
@interface Teacher : NSObject <Costum>
- (void) answerQuestion: (id)sender;
@end
// Teacher.m
#import "Teacher.h"
@implementation Teacher
- (void) answerQuestion:(id)sender
{
NSLog(@"teacher answer questions");
}
@end
// Costum.h
#import <Foundation/Foundation.h>
@protocol Costum <NSObject>
//建立委托协议,说明委托内容
- (void) answerQuestion:(id) sender;
@end
相关文章推荐
- 学习委托(3)-----解析委托的实现机制续篇
- 事件委托机制实现GameObject之间的通信
- 利用匿名委托和动态事件注册机制实现应用程序状态监视
- 基于委托机制的定时器的实现
- 转载_OC消息机制(本质的实现方式)
- C++ 0x 使用可变参数模板类 实现 C# 的委托机制
- C++实现的委托机制
- C++实现委托机制(二)
- C++实现的委托机制(1)
- C++实现的委托机制
- 黑马程序员_(15)类加载器的委托机制及动态代理的三种实现
- Block实现委托机制
- 利用OC的消息转发机制实现多重代理
- [转]OC消息机制(本质的实现方式)
- C#实现异步编程的两个简单机制(异步委托&定时器)及Thread实现多线程
- C++实现的委托机制(2)
- OC消息机制(本质的实现方式)
- 使用反射实现Java下的委托机制
- 学习委托(2)-------解析委托的实现机制
- C++实现委托机制(二)