protocol delegate ios macos interface protocols swift

ios - delegate - ¿Cuál es el equivalente para las interfaces de Java o los protocolos de Objective C en Swift?



protocol swift (2)

He estado buscando en el nuevo lenguaje Swift tratando de encontrar el equivalente para una interfaz (en java) o un protocolo (en object-c) en Swift, después de navegar en Internet y buscar en el libro proporcionado por Apple. Todavía no puedo encontrarlo.

¿Alguien sabe cuál es el nombre de este componente en swift y cuál es su sintaxis?


Swift también tiene protocolos, aquí está la documentación relevante:


Los protocolos en Swift son muy similares a los de Objc, excepto que puedes usarlos no solo en clases, sino también en estructuras y enumeraciones.

protocol SomeProtocol { var fullName: String { get } // You can require iVars class func someTypeMethod() // ...or class methods }

Conforme a un protocolo es un poco diferente:

class myClass: NSObject, SomeProtocol // Specify protocol(s) after the class type

También puede extender un protocolo con una implementación de función predeterminada (reemplazable):

extension SomeProtocol { // Provide a default implementation: class func someTypeMethod() { print("This implementation will be added to objects that adhere to SomeProtocol, at compile time") print("...unless the object overrides this default implementation.") } }

Nota: las implementaciones predeterminadas deben agregarse a través de la extensión, y no en la definición del protocolo en sí, ya que un protocolo no es un objeto concreto, por lo que no puede tener cuerpos de métodos adjuntos. Piense en una implementación predeterminada como una plantilla de estilo C; esencialmente el compilador copia la declaración y la pega en cada objeto que se adhiere al protocolo.