OC基础之 ---------- block / 代理模式 ,协议 /
2015-11-01 08:41
316 查看
block:oc的一种变量,在程序运行时使用
block的作用: 保存代码 / 可以有返回值 /有形餐
block 标志 : ^
// 无参 ,无返回值的block
void (^myblock) ()= ^ {
NSLog(@"这是一个简单的block块");
};
//有参有返回值的block
int (^myblock1)(int ,int) = ^(int a ,int b){
return (a + b);
};
int a = myblock1(4,5);
//有参无返回值的block
void (^myblock1)(int) = ^(int n){
for (int i = 0; i < n; i++) {
NSLog(@" ------------ ");
}
};
myblock1(4);
void : 返回类型
(^mrblock) :block的名称
() : 里面是参数
2 >使用typedef 定义一个类型名称
typedef int (^MyBlock)(int ,int);
MyBlock block = ^(int a, int b){
return a+b;
};
int a = block(1,2);
block总结:
1》如何定义一个block
int (^myblock)(int) ;
void (^mablock)();
2> 如何利用block来封装代码
^(int a ,int b){
returan a - b;
};
3>block访问外部变量
block内部可以访问外面的变量
默认情况下,block内部不能修改外面的局部变量
给局部变量加上_block关键字,这个局部变量可以在block内部进行修改
4》使用typedef 定义一个类型名称
typedef int (^MyBlock) (int ,int);
// 以后就可以使用MyBlock这种类型来定义block变量
MyBlock block;
MyBlock b1 ,b2 ;
b1 = ^ (int a ,int b){
return a + b;
}
代理 --- 协议
1.协议的定义
@protocol 协议名称 <nsobject>
// 方法生命列表。。。。。。
@end
2》定义一个变量的时候,限制这个变量保存的对象遵守某个协议
类名 <协议名称> *变量名 ;
id <协议名称> *变量名 ;
nsobject <myprotocol> *obj;
id <myprotocol> obj1;
3>
block的作用: 保存代码 / 可以有返回值 /有形餐
block 标志 : ^
// 无参 ,无返回值的block
void (^myblock) ()= ^ {
NSLog(@"这是一个简单的block块");
};
//有参有返回值的block
int (^myblock1)(int ,int) = ^(int a ,int b){
return (a + b);
};
int a = myblock1(4,5);
//有参无返回值的block
void (^myblock1)(int) = ^(int n){
for (int i = 0; i < n; i++) {
NSLog(@" ------------ ");
}
};
myblock1(4);
void : 返回类型
(^mrblock) :block的名称
() : 里面是参数
2 >使用typedef 定义一个类型名称
typedef int (^MyBlock)(int ,int);
MyBlock block = ^(int a, int b){
return a+b;
};
int a = block(1,2);
block总结:
1》如何定义一个block
int (^myblock)(int) ;
void (^mablock)();
2> 如何利用block来封装代码
^(int a ,int b){
returan a - b;
};
3>block访问外部变量
block内部可以访问外面的变量
默认情况下,block内部不能修改外面的局部变量
给局部变量加上_block关键字,这个局部变量可以在block内部进行修改
4》使用typedef 定义一个类型名称
typedef int (^MyBlock) (int ,int);
// 以后就可以使用MyBlock这种类型来定义block变量
MyBlock block;
MyBlock b1 ,b2 ;
b1 = ^ (int a ,int b){
return a + b;
}
代理 --- 协议
1.协议的定义
@protocol 协议名称 <nsobject>
// 方法生命列表。。。。。。
@end
2》定义一个变量的时候,限制这个变量保存的对象遵守某个协议
类名 <协议名称> *变量名 ;
id <协议名称> *变量名 ;
nsobject <myprotocol> *obj;
id <myprotocol> obj1;
3>
相关文章推荐
- 读取web.config中单个节点的方法 (读取xml文件的方法测试完毕,成功)
- Ubuntu系统的安装与使用:搜狗输入法安装
- 结构体及其应用:结构体的深度拷贝,结构体内含指针
- 国家规划和个体愿景
- c#入门
- httpcore和httpclient的源码一点点(1)
- iphone开发中的一些小技巧
- ACdream 1196 KIDx's Pagination(模拟)
- 面向对象的概念详解(转)
- 前所未有的神速,仅半年后就推出了 GNU Hurd 0.7
- sersync服务实战
- 国家商用密码(八)在Apache MINA上实现文本流的SM4编解码器
- 老中医传授6步护肝秘诀
- java中g.drawImage(pict, a, b, 50, 50, this);函数出错问题
- Java记录 -48- Java数据结构-链表
- [Linux学习笔记] Linux常用命令 - 帮助命令
- 适配器模式 -- 大话设计模式
- 国家商用密码(七)在Apache MINA上实现二进制流的SM4编解码器
- red hat使用
- 状态模式 -- 大话设计模式