Objective-C学习笔记(block,协议)4.10

1.block:是一个数据类型,存储一段代码,代码可以有参数有返回值。

2.声明block: 返回值类型 (^block变量名称)(参数列表);

int (^myblock) (int num1,int num2);

代码段格式:^返回值类型(参数列表){

代码段

};

int (^myblock) (int num1,int num2) = ^int(int num1,int num2){

return num1+num2;

}

3.执行block:block变量名(参数);

4.简写代码段:①代码段如果没返回值可以省略void,声明block不能省略,其实代码段可以不写返回值。②代码段如果没参数,括号可以省略。

5.简写声明block:参数可以只写类型不写名字。

6.typedef简化block:typedef 返回值类型 (^新类型)(参数列表);

7.block内部可以修改全局变量,不能定义在外部的局部变量,局部变量名前加__可以让block内部修改这个局部变量。

8.block作为函数参数:将调用者自己写的代码传递到函数内部执行。当方法内部需要执行1个功能,但是功能具体实现不确定,使用block让调用者将这个功能的具体实现传递进来。

9.block作为函数返回值:使用typedef定义的短类型

10.协议@Protocol:①声明一大段方法(不能声明属性,不能实现方法),只要某个类遵守这个协议,那就拥有这个协议里所有声明。②有一个可以指向任意对象的指针,可以要求指向的对象遵守一个协议。

@interface 类名 :父类名 <协议1,协议2> @end

NSObject<协议名称> *指针名;

**11.@required:**默认值,遵守这个协议的类最好实现全部方法,否则会有警告。

**12.@optional:**可以不实现全部方法。

相关推荐
余厌厌厌2 分钟前
go语言学习 第9章:映射(Map)
服务器·学习·golang
委婉待续3 分钟前
Qt的学习(一)
开发语言·qt·学习
哆啦A梦的口袋呀40 分钟前
基于Python学习《Head First设计模式》第七章 适配器和外观模式
python·学习·设计模式
笑鸿的学习笔记41 分钟前
虚幻引擎5-Unreal Engine笔记之SET节点的输出引脚获取设置后的最新变量值
笔记·ue5·虚幻
恰薯条的屑海鸥43 分钟前
零基础在实践中学习网络安全-皮卡丘靶场(第十期-Over Permission 模块)
学习·安全·web安全·渗透测试·网络安全学习
草莓熊Lotso1 小时前
【数据结构初阶】--算法复杂度的深度解析
c语言·开发语言·数据结构·经验分享·笔记·其他·算法
东京老树根1 小时前
SAP学习笔记 - 开发27 - 前端Fiori开发 Routing and Navigation(路由和导航)
笔记·学习
UQI-LIUWJ3 小时前
LLM 笔记:Speculative Decoding 投机采样
笔记
凤年徐5 小时前
【数据结构初阶】单链表
c语言·开发语言·数据结构·c++·经验分享·笔记·链表
阿阳微客7 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏