Swift中的反射非常有限,仅允许以只读方式访问元数据的类型子集.或许 Swift 因有严格的类型检验而不需要反射.编译时已知各种类型,便不再需要进行进一步检查或区分.然后大量的 Cocoa API 会立即给实例分配"AnyObject"类型,用户只能想方设法去做类型匹配. 而这里将回顾 Swift 中的反射.镜像类型以及将它们结合起来的 MirrorType 协议. MirrorType 反射的切入点为「reflect」函数,「reflect」函数可将任何类型作为其单参数并返回一个…
我们知道在Swift中String和NSString是可以互相转换使用的-额-应该是在绝大数情况下可以互相转换使用.在某些情况下可能还有一丝丝略微的差别:比如在涉及到处理字符串中字符索引的时候. 我们首先来看一下NSString的字符串替换功能: let string = "ABCDE" let range = Range(uncheckedBounds: (1,4)) let nsRange = NSRange(range) let str:NSString = NSString(s…
原文:http://www.cocoachina.com/applenews/devnews/2014/0623/8923.html Swift 事实上是支持反射的.只是功能略弱. 本文介绍主要的反射使用方法和相关类型. MetaType 和 Type 语法 The metatype of a class, structure, or enumeration type is the name of that type followed by .Type. The metatype of a…