OC加强day3-函数指针、protocol、block、NSString
来源:互联网 发布:360网络急救箱修复lsp 编辑:程序博客网 时间:2024/05/06 08:37
函数指针
一个指向函数的指针
block
block的typedef 格式:typedef 返回值类型(^block名)(参数类型列表);
使用时:block名变量名; 此时block名是类型名,如同Int这种
如有参有返回值: typedef int(^blockType){int,int };
1.block内部可以访问全局变量,也可以访问全局变量和外部定义的局部变量
2.block内部可以修改自身内部定义的变量,可以修改全局变量,不可以修改外部定义的局部变量
3.如果硬要修改外部定义的局部变量,那么这个局部变量应该是被__block所修饰的
__block是个关键字,被这个关键字修饰的变量可以被Block所修改
block作为函数的返回值
1.起别名
2.返回值类型改成这个别名
3.接收返回的block
4.使用返回的block
block书写:x-code中输入inlineblock回车,很方便,防止写错格式
block作为函数参数时,尽量写形参列表,不要写实参列表。
protocol
声明一些必须实现和选择实现的方法
协议:只生成一个.h文件,
1.声明格式:@protocol协议名<NSObject> @end
2.采纳格式:类采纳协议 @interface类名:NSObject<采纳的协议名> @end
3.在类的.m文件中实现协议中声明的方法
所有的协议都采纳NSObject
一个协议可以遵守另一个协议
类和协议可以采纳多个协议,格式<协议1,协议2,协议3>
父类协议中声明的方法也要被采纳
必须实现:@required
选择实现:@optional
类型限制格式:id<协议名称>变量名
protocol代理设计模式
1.定义一个协议
2.创建代理类,遵守协议
3.本身有一个属性,id<协议名>
4.调用代理类的方法
5.实现
NSString
普通创建时一般存于数据段区,内容相同时,地址相同。
通过XXXWithFormat的形式,不存在与数据段,内容相同,地址相同
对象方法 writeFormat(写入文件),第一个参数:你要写到哪 (文件路径)第二个参数:原子性,是否加锁第三个参数:编码格式,通用UTF-8第四个参数:目前无特殊情况就用nil返回值为BOOL,判断是否写成功了
类方法 读取文件(stringWithContentsOfFile),第一个参数:文件路径第二个参数:编码格式第三个参数:nil
- OC加强day3-函数指针、protocol、block、NSString
- OC中Block、protocol
- OC--block,@protocol协议
- oc -8 Block protocol
- OC加强day04-NSString、array、增强for、block、.h中协议的声明
- 黑马程序员-OC加强-Block
- OC中的block和protocol
- 黑马程序员----oc加强笔记----Foundation\NSString
- OC加强day2-自动释放池、指针分类、ARC、分类、延展、block
- 黑马程序员----oc加强笔记----block
- OC加强Day03 - block与协议
- OC学习之 block与Protocol
- 黑马程序员--oc:block与protocol
- OC学习笔记十---Block与@protocol
- OC语言BLOCK和Protocol总结
- 黑马程序员------OC基础-----block和protocol
- 【黑马程序员】-oc中的block和protocol
- 黑马程序员-OC-block和protocol
- Cookie 进阶
- Material Design学习之 Sliders(详细分析,悬空气球显示进度值,附带Eclipse可以jar)
- 4.Git分支管理及多人协作
- Http请求
- 方法名+ throws Exception
- OC加强day3-函数指针、protocol、block、NSString
- 1014. 福尔摩斯的约会 (20)
- JobTracker和TaskTracker
- xcode7.2不能真机调试ios9.2.1系统设备的解决方法
- Dubbo 收藏
- 数组的理解与实现[数据结构]
- 设计模式:建造者模式
- Bootstrap学习
- 安卓仿淘宝下拉加载购物详情的页面