【OC语言】第八天·block和Protocol
来源:互联网 发布:恒生指数期货模拟软件 编辑:程序博客网 时间:2024/06/11 17:08
1. 格式:
1) 有参有返回值
格式: 返回值类型 (^变量名)(参数类型及个数) = ^(形参列表){
代码块语句;
return ;
};
2)有参无返回值
格式: void (^变量名)(参数类型及个数) = ^(形参列表){
代码块语句;
};
3) 无参无返回值 block
格式:void (^block变量名)() = ^(){
代码块的语句;
};
优化: void (^block变量名)() = ^{
代码块的语句;
};
4) block变量的使用:block变量名();
2. 给block起一个别名,Block 是一个类型,不在是一个单纯的变量了
3. block访问外部变量:定义变量,并且赋值。 当定义block的时候,block会把外部变量以const的方式复制一份,存放到block的所在的内存中。
定义变量时:以__block修饰,外部变量将不以const方式拷贝。在block内部修改外部变量值之后,该外部变量将会被修改。
4. 返回值是block类型的定义步骤:
1)使用 typedef 定义一个新的类型
2)用新定义的类型作为函数的返回值
3)定义block变量接收 函数返回的结果
4)执行block
5. block使用技巧
1)block助记符:inlineBlock
2)我们在定义block变量的时候,形参类型及个数这个位置处可以加上形参名称
二、Protocol
1. 什么是协议: 一些方法的声明,一般写到一个.h的头文件中
分类:1)必须要实现
2)选择实现
2. 作用:供其他的类去遵守, 如果一个类遵守了一个协议,就应该实现这个协议中定义的必须要实现的方法。
3. 定义协议:
@protocol xxx <NSObject> 默认情况下遵守 NSObject协议
@end
4. 类遵守协议的格式:
1)遵守一个协议:
先导入头文件
@interface 类名 :NSObject <xxx>
@end
2)遵守多个协议
@interface 类名 :NSObject <xxx,aaa,bbb>
@end
5. 使用协议的流程:
1) 定义协议
2)让类遵守这个协议
3)实现协议中对应的方法(必须要实现的)
6. 遵守协议的流程:
1)导入 头文件
2)遵守协议
3)实现方法
结论:当我们遵守了某个协议后,就相当于这个类有了协议中所有的方法的声明
7. 注意事项
1) 一个协议,可以遵守其他的协议
2)一个类可以遵守多个协议
3)一个协议可以被多个类遵守
8. 关键字
@required 和 @optional 都是协议中的关键字
@required 修饰的方法是必须要实现的,默认是必须实现的
@optional 修饰的方法是可以实现,也可以不实现的
9. 类型限制
1)第一种类型限制:给id类型增加限制
2)id类型的对象赋值的时候,必须是某个对象,并其遵守 了要求的协议
3)在get方法中加限制,要求某一对象遵守要求的协议
10. @protocol 协议名
1)要遵守这个协议的类,用@protocol 告诉编译器这是一个协议
2)在.m 文件中,导入协议头文件
3)在main函数中,也要导入协议的头文件
0 0
- 【OC语言】第八天·block和Protocol
- OC语言BLOCK和Protocol总结
- OC中的block和protocol
- 黑马程序员------OC基础-----block和protocol
- 【黑马程序员】-oc中的block和protocol
- 黑马程序员-OC-block和protocol
- 黑马程序员 OC基础: Block 和 Protocol
- 黑马程序员——10、OC语言(block、protocol和代理模式)
- 黑马程序员————OC语言BLOCK和Protocol总结
- 黑马程序员——OC语言基础篇---block和protocol
- OC中Block、protocol
- OC--block,@protocol协议
- oc -8 Block protocol
- OC第八天
- OC第八天
- OC第八天:属性
- OC语言BLOCK和协议
- OC语言Block和协议
- 【OC语言】第四篇·类的继承、多态、类对象以及SEL类型
- 【OC语言】第五篇·@property和@synthesize关键字、动态类型检测和构造方法
- web_custom_request应用示例-飞机订票系统中的删票操作
- 【OC语言】第六篇·内存管理
- 【OC语言】第七篇·ARC和分类
- 【OC语言】第八天·block和Protocol
- 【OC语言】第九篇·NSString,NSArry,NSDictionary
- 【OC语言】第十篇·NSFileManager、NSDate、沙盒、copy以及单例模式
- 【OC笔记】关于MRC中的注意问题
- 【OC笔记】MRC中多对象内存管理以及循环retain
- 【OC笔记】分类和延展
- 如何获取网站Icon
- 【OC笔记】block的用法
- 外公外婆