Cuando presioné Comando e hice clic en AnyObject para navegar a la interfaz de AnyObject , me encontré con la siguiente definición:
public typealias AnyObjectVeo este comentario escrito encima de la definición:
El protocolo al que se ajustan implícitamente todas las clases.
Bueno, no entiendo cómo esta definición convierte a AnyObject en un protocol sin usar explícitamente la palabra clave protocol . Además, es un typealias sin = someType , que es una declaración no válida.
No puedo escribir una declaración como:
public typealias SomeOtherObjectDa un error de compilación.
¿Alguien puede explicar qué está pasando exactamente aquí?
La cuestión es que al presionar AnyObject sosteniendo CMD , en realidad no verá el código fuente, sino solo una interfaz public . Si profundiza en el código fuente de Swift, descubrirá que
public typealias AnyObject
en realidad se ve así:
public typealias AnyObject = Builtin.AnyObject
Aquí está el enlace al archivo que contiene este código https://github.com/apple/swift/blob/master/stdlib/public/core/Policy.swift