swift中any和anyobject的区别

2026年09月25日 00:14
有1个网友回答
网友(1):

在Swift语言中,Any是一个空协议集合的别名,它表示没有实现任何协议,因此它可以是任何类型,包括类实例与结构体实例。
AnyObject是一个成员为空的协议,任何对象都实现了这个协议。总的来说,AnyObject是一个协议,Any是空协议集合。
另外,经常令人困惑的还有"AnyObject"和"AnyObject!"。顺便也说一下区别:
AnyObject是一定不能为空,包括初始化的时候。
AnyObject!表示类型是一个optional类型,初始化的时候可以为空,但是加!表示知道用它时它是一定不为空的。