OC基础之 ---------- block / 代理模式 ,协议 /
来源:互联网 发布:java解析xml文件 编辑:程序博客网 时间:2024/05/22 12:52
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>
- OC基础之 ---------- block / 代理模式 ,协议 /
- OC-Block
- OC学习-block
- OC基础-protocol协议
- OC设计模式--代理模式
- oc学习笔记-protocol代理模式
- OC总结-block语法
- 黑马程序员-oc-Block
- OC基础-内存管理-block类型
- 黑马程序员--ios基础--oc-内存管理之ARC、Block
- 黑马程序员---oc block
- OC--SEL和Block
- 黑马程序员-OC语言Block
- 黑马程序员 委托模式--类别、协议、Block篇
- 黑马程序员-[OC语言] 第五篇:block使用、协议概述
- OC协议-正式协议的定义
- 黑马程序员-IOS开发之--block,协议
- 蓝鸥iOS从零基础到精通就业-OC语言入门 Block
- 常用工具
- 结构体及其应用:结构体的深度拷贝,结构体内含指针
- Ubuntu系统的安装与使用:搜狗输入法安装
- 动画特效十六:网易新闻之“排序删除”效果
- 读取web.config中单个节点的方法 (读取xml文件的方法测试完毕,成功)
- OC基础之 ---------- block / 代理模式 ,协议 /
- STM32F407VG的DCMI-OV7670和FSMC-LCD
- iOS 开发知识点
- git学习二:git初级使用教程
- Android 开机自启动示例程序
- 黑马程序员------多线程
- 程序员没有天才:暴风影音首席架构师鲍金龙访谈
- 百度Q3财报公布,O2O转型志在必得
- git使用