iOS 代理-协议的代码笔记
来源:互联网 发布:qq聊天记录软件 编辑:程序博客网 时间:2024/05/17 23:08
1,谁要让别人给自己做事(协议方法里面获得值) 则他必须要加上这么一个代理
@interface ViewController :UIViewController<TestDelegate,DoSomeDelegate,DoSomeDataSource>
实现代理方法 等待代理传过来的数值-(void)changeValue:(NSString *)value;
2,给别人做事 他必须有一个代理的对象
@property(strong,nonatomic)id<DoSomeDelegate>delegate;
3.给别人做什么事情呢?如下:
[self.delegatechangeValue:self.text.text];//要做的事情就是:赋值
4 源代码:
代理类:
.h
//// DoSomeObj.h// delegate//// Created by linpeng on 14-2-25.// Copyright (c) 2014年 linpeng. All rights reserved.//#import <Foundation/Foundation.h>//添加协议@protocol DoSomeDelegate, DoSomeDataSource;@interface DoSomeObj : NSObject@property(strong,nonatomic)NSString *str1,*str2;@property(strong,nonatomic)id<DoSomeDelegate>delegate;@property(strong,nonatomic)id<DoSomeDataSource>datasource;-(void)Action;@end//定义一个协议 :DoSomeDelegate@protocol DoSomeDelegate <NSObject>@required-(void)doSomeDelegateAction:(NSString *)str;@end//定义一个协议 :DoSomeDataSource@protocol DoSomeDataSource <NSObject>@required-(void)doSomeDataSourceAction:(NSString *)str;@end.m
//// DoSomeObj.m// delegate//// Created by linpeng on 14-2-25.// Copyright (c) 2014年 linpeng. All rights reserved.//#import "DoSomeObj.h"@implementation DoSomeObj-(id)init{ if(self=[super init]) { self.str1 = @"delegate"; self.str2 = @"datasource"; //放着里是没用的 因为这个时候的代理===是空的!!!!// [self.delegate doSomeDelegateAction:@"delegate"];// [self.datasource doSomeDataSourceAction:@"datasource"]; } return self;}//促发代理做一些处理-(void)Action{ //前面 DoSomeObj *doSome = [[DoSomeObj alloc] init];doSome.delegate = self; 所以他的代理不是空的 [self.delegate doSomeDelegateAction:self.str1]; [self.datasource doSomeDataSourceAction:self.str2];}@end
使用代理
.h
#import <UIKit/UIKit.h>#import "TestDelegate.h"#import "DoSomeObj.h"@interface ViewController : UIViewController<TestDelegate,DoSomeDelegate,DoSomeDataSource>@end
.m
//第二个代理 DoSomeObj *doSome = [[DoSomeObj alloc] init]; doSome.delegate = self; doSome.datasource = self;
//触发代理类赋值 [doSome Action];
#pragma 协议方法-(void)doSomeDataSourceAction:(NSString *)str{ lab.text = [NSString stringWithFormat:@"%@--%@",lab.text,str];}#pragma 协议方法-(void)doSomeDelegateAction:(NSString *)str{ lab.text = [NSString stringWithFormat:@"%@--%@",lab.text,str]; }
download:demo
0 0
- iOS 代理-协议的代码笔记
- iOS复习笔记11:协议和代理
- IOS 协议与代理 的小注
- iOS开发代理协议的使用
- 关于iOS 委托 代理 协议 的理解
- iOS 协议代理.block的基本使用
- iOS 协议代理的深入理解
- iOS 协议代理的继承和扩展
- iOS代理与协议
- iOS:分类、协议、代理
- ios 协议和代理
- iOS协议代理
- iOS 代理 协议
- ios协议 与代理
- iOS代理,协议
- iOS 协议代理
- iOS 代理协议
- IOS学习笔记-协议和代码块
- pthread_join
- 确定比赛名次(拓扑排序)
- 基于ASIHTTPRequest封装的HttpClient
- android 开源框架
- Android下载Android源码
- iOS 代理-协议的代码笔记
- java知识系列之JVM性能调优
- 基于closure的lua面向对象编程
- android webview downloadManager文件下载管理
- Linux内核中内存cache的实现
- 《西江月》
- 读取properties文件值
- 关于HTML怎样用图片做背景
- javascript笔记汇总