27.怎样在Swift中声明typedef?
在OC中,我们经常会用typedef关键字来声明Block,例如:
/**
* 通用的空闭包类型,无参数,无返回值
*/
typedef void (^GofVoidBlock)(void);
在Swift中,typedef关键字替换成了typealias。实际项目开发中,我们常用的闭包宏定义如下:
import Foundation
import UIKit /// SnapKit约束闭包类型
typealias GofConstraintMaker = (ConstraintMaker) -> Void; /// 按钮点击回调闭包类型
typealias GofBtnClickBlock = @convention(block)(UIButton) -> Void;
(UIButton) -> Void; /// 只带一个error参数的失败闭包类型,主要用于处理失败回调
typealias GofErrorBlock = (NSError) -> Void; /// 只带一个errorMessage参数的失败闭包类型,主要用于处理失败回调
typealias GofErrorMessageBlock = (String) -> Void; /// 通用的空闭包类型,无参数,无返回值
typealias GofVoidBlock = (Void) -> Void; /// 通知的闭包类型
typealias GofNotificationBlock = (NSNotification) -> Void; /// 常用的返回Bool类型的闭包类型
typealias GofBoolBlock = (Bool) -> Void; /// 常用的返回Bool类型和相应提示语的闭包类型
typealias GofBoolMsgBlock = (Bool, String) -> Void; /// 常用的返回数组类型的闭包类型
typealias GofArrayBlock = ([Any]) -> Void; /// 常用的返回数组类型和错误提示语的闭包类型
typealias GofArrayMsgBlock = ([Any], String) -> Void; /// 常用的返回字典类型的闭包类型
typealias GofDictionaryBlock = ([String: Any]) -> Void; /// 常用的返回字典类型和错误提示语的闭包类型
typealias GofDictionaryMsgBlock = ([String: Any], String) -> Void; /// 常用的返回Int类型的闭包类型
typealias GofIntBlock = (Int) -> Void; /// 常用的返回Int类型和错误提示语的闭包类型
typealias GofIntMsgBlock = (Int, String) -> Void; /// 常用的返回String类型的闭包类型
typealias GofStringBlock = (String) -> Void; /// 常用的返回String类型和错误提示语的闭包类型
typealias GofStringMsgBlock = (String, String) -> Void; /// 常用的返回任何类型(包括函数类型)的闭包类型
typealias GofAnyBlock = (Any) -> Void; /// 常用的返回任何类型(包括函数类型)和错误提示语的闭包类型
typealias GofAnyMsgBlock = (Any, String) -> Void; /// 常用的返回任何类类型的闭包类型
typealias GofAnyObjectBlock = (AnyObject) -> Void; /// 常用的返回任何类类型和错误提示语的闭包类型
typealias GofAnyObjectMsgBlock = (AnyObject, String) -> Void; /// 常用的手势回调的闭包类型
typealias GofGestureBlock = (UIGestureRecognizer) -> Void;
27.怎样在Swift中声明typedef?的更多相关文章
- Swift中声明协议中的class关键字的作用
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 最近在Cocos2D编程for Swift中看到以下一个代码片 ...
- Swift: 比较Swift中闭包传值、OC中的Block传值
一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...
- 在Swift中使用JavaScript的方法和技巧
本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...
- Swift 中的函数
学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 练习一: import Foundation //函数 ...
- iOS开发之OC与swift开发混编教程,代理的相互调用,block的实现。OC调用Swift中的代理, OC调用Swift中的Block 闭包
本文章将从两个方向分别介绍 OC 与 swift 混编 1. 第一个方向从 swift工程 中引入 oc类 1. 1 如何在swift的类中使用oc类 1.2 如何在swift中实现oc的代理 ...
- 一览Swift中的常用关键字
要学习Swift这门语言,就必须先了解Swift的关键字及对应的解释.这里就列一下在Swift中常用到的关键字. 关键字是类似于标识符的保留字符序列,除非用重音符号(`)将其括起来,否则不能用作标识符 ...
- swift学习笔记 - swift中常用关键字
swift中常用关键字 **用作声明的关键字: ** class.deinit.enum.extension.func.import.init.let.protocol.static.struct.s ...
- 浅谈 Swift 中的 Optionals
input[type="date"].form-control,.input-group-sm>input[type="date"].input-grou ...
- swift中block的使用
在OC中习惯用block来传值,而swift中,block被重新定义了一下,叫闭包: 使用的技巧:谁定义谁传值: 案例使用A.B控制器: 1~4步在B中执行,最后在A中执行: - B控制器: 1- ...
随机推荐
- 数据结构——Java实现单向链表
结点类: /** * @author zhengbinMac * 一个OnelinkNode类的对象只表示链表中的一个结点,通过成员变量next的自引用方式实现线性表中各数据元素的逻辑关系. */ p ...
- Java核心技术II读书笔记(一)
Char2 XML 解析器:读入一个文件,确认其具有正确的格式,然后将其分解成各种元素,使程序员能够访问这些元素. java库提供了两种XML解析器:DOM和SAX,即文档对象模型和流机制解析器. D ...
- spring开发相关网址
jar包下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
- effective c++:virtual函数的替代方案
绝不重新定义继承来的缺省值 首先明确下,虚函数是动态绑定,缺省参数值是静态绑定 // a class for geometric shapes class Shape { public: enum S ...
- Ibatis 美元符号替换为井号
原码:where name = '$name$' or code = '$code$' 修改后: where name = #name# or code = #code#
- Rxjava, RxAndroid, Retrofit 等库的使用
RxJava的基本用法: 关于 unSubscribe() 的调用问题: There is no need to unsubscribe in onCompleted. Take a look at ...
- delphi 判断调试状态
DebugHook 该变量在调试状态下值为1,运行模式为0,例如,我们可以使用如下的代码来简单控制: if DebugHook=0 then
- 转】从源代码剖析Mahout推荐引擎
原博文出自于: http://blog.fens.me/mahout-recommend-engine/ 感谢! 从源代码剖析Mahout推荐引擎 Hadoop家族系列文章,主要介绍Hadoop家族产 ...
- HD4505小Q系列故事——电梯里的爱情
Problem Description 细心的同事发现,小Q最近喜欢乘电梯上上下下,究其原因,也许只有小Q自己知道:在电梯里经常可以遇到他心中的女神HR. 电梯其实是个很暧昧的地方,只有在电梯里,小Q ...
- How to setup Wicket Examples in Eclipse
Wicket examples is a good place to learn Apache Wicket by examples, and a must reference site for ne ...