swift_042(Swift的typealias(别名)的用法)
Swift中的typealias(别名)的用法
// swift中的typedef:使用关键字(typealias)定义类型别名,类似typedef
typealisa 简单使用
1.示例如下
typealias point = CGPoint
func setPoint(_: point){}
说白了就是给 某个已经存在的类型 改一个姓名字 昵称 以便于好理解 好记 上面的point就是 CGPoint 的一个别名 在用到CGPoint的时候就可以用point来代替
2.关于涉及泛型 的类型别名 有点不同 示例如下
class Person<T> {}
typealias WorkId = String
typealias Worker = Person<WorkId>
首先提一下 typealias 是单一的,这也就限制了它 只能将某个特定的类型 通过typealias 来定义成新的名字 而不能将整个泛型类型进行重命名。
这也就是为什么上面的 WorkId 为什么定义为 String 类型
3.用typealias来定义 block 或者说闭包 示例如下
typealias sendValueClosure = (sendString: String) -> Void//声明
var callBackString: sendValueClosure?//持有
self.callBackString!(sendString: self.nameString)//调用
4.在Swift中使用闭包来实现两个界面的传值,用来反向传值很方便
例如:有A类和B类.
B类
- //声明闭包
- typealias valueBlock = (Float)->()
- var returnPrice: valueBlock?
- //调用该闭包
- self.returnPrice?(price)
A类
- let sb = UIStoryboard(name:"Main", bundle: nil)
- let vc = sb.instantiateViewControllerWithIdentifier("keypadViewVC") as! keypadViewVC
- //B类的回调
- vc.returnPrice = {price in self.gratuityBtn.setTitle(String(format: "%.2f", price), forState:UIControlState.Normal)}
- self.presentViewController(vc, animated: true, completion: nil)
参考:http://www.jianshu.com/p/5a3fd872257e
http://blog.csdn.net/u010130947/article/details/51697925
http://blog.csdn.net/wmmhwj/article/details/52366494
swift_042(Swift的typealias(别名)的用法)相关推荐
- Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制
原文链接:http://blog.csdn.net/qq924862077/article/details/52612589 ---------------------------------- 在M ...
- oracle别名as用法
oracle别名as用法 1.在oracle中as的作用主要是为表中的字段添加别名.如下图 2.在命名别名的时候也可以区分大小写,不过要加双引号"",如果不加双引号只是首字母大写的 ...
- 数据库表和列的别名的用法
数据库表和列的别名的用法 使用数据库别名可以让sql语句的可读性更强 1.怎么给数据库表和某列(字段)起别名 用as就可以 列的别名:sql = "select 列名 as 别名 from ...
- Swift - 闭包的介绍及用法(以数组排序为例)
闭包(即一些小的匿名代码块),可以像函数一样使用.可以很方便的将闭包传给其他函数,告诉它们应当如何执行某一个任务. 1,使用sort方法和闭包进行数组排序 sort方法返回一个数组的有序版本.(sor ...
- 关于mybatis注解之@alias别名用法
Springboot 整合mybatis的时候,关于别名的用法 此处列举比较常见的两种用法 1.配置文件定义别名 如图所示:映射所需实体的类名 2.实体类注解别名 如图所示:实体类直接加注解 这样Ma ...
- swift与OC之间不得不知道的21点
2019独角兽企业重金招聘Python工程师标准>>> swift与OC之间不得不知道的21点 原文 http://www.cnblogs.com/dsxniubility/p/4 ...
- Swift相关api功能介绍与使用
一. 将Protocol的方法声明为mutating Swift的协议不仅可以被class类型实现,也适用于struct和enum, 因为这个原因在写给别人用的协议时需要考虑是否使用mutating来 ...
- Swift入门[基于Java基础]
Swift入门 学习目标 由于已经有了Java编程思想,所以着重了解Swift语言特有的特性,与Java不一样的地方.最终目的是可以使用Swift语言开发iOS应用. 学习过程 [阅读苹果官网Swif ...
- 浅谈Swift和Objective-C之间的那点事。。。
Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用.Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制.Swift 采用安全的编程模式并添加了很多新特性 ...
最新文章
- 新年新技术:MongoDB 3.0
- 预测----三个原则
- 微软图像加密算法被破解,谷歌等大厂都在用,MIT硕士小哥开源逆向所用方法...
- Spring TX源码分析
- [ZJOI2012]数列
- 安卓手机可以改鸿蒙吗,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
- PHP 国家电话区号 PHP Countries and their call codes with two letter abbreviations
- 游戏可以html+上运行吗,运行多个,如果在HTML游戏
- Android 开发常见错误
- centos 7 网络DNS设置的相关配置文件配置
- 关于oracle数据库分页的原理及实现
- 阶段3 3.SpringMVC·_06.异常处理及拦截器_3 SpringMVC异常处理之异常处理代码编写
- 学习web前端历程(十七)
- 四叉树(QuadTree)原理
- etc fstab 详解linux,/etc/fstab功能详解
- 生先森依旧怀抱初心,满载爱意
- 中国会计科目的中英文对照
- 泛函分析笔记06:Lp与lp空间
- 使用MATLAB进行K-means聚类和层次聚类
- python什么证书最有价值,python考什么证含金量高