Swift中的Any 与 AnyObject、AnyClass的

2019-08-21  本文已影响0人  Sultan

Swift有两种匿名类型:Any和AnyObject。

1.AnyObject

是一个成员为空的协议,任何对象都实现了这个协议。它可以指任何类的实例,并且等同id于Objective-C。当您特别想要使用引用类型时,它非常有用,因为它不允许使用任何Swift的结构或枚举。AnyObject当您想要限制协议以便它只能用于类时,也会使用它。

2.Any

是一个空协议集合的别名,它表示没有实现任何协议。所以它可以指任何类,结构或枚举的实例 。你会在Swift中看到这种情况,无论类型是未知的还是以可以有意义地分类的方式混合:

let values: [Any] = [1, 2, "Fish"]

注意:如何可以指定具体类型的话尽量避免使用AnyObject和Any

3.AnyClass

AnyClass是AnyObject.Type的别名而已。

上一篇 下一篇

猜你喜欢

热点阅读