Estructuras, Protocolos y clases

 ESTRUCTURAS Y CLASES DE SWIFT

Las estructuras y clases son construcciones flexibles y de propósito general que se convierten en los componentes básicos del código de su programa. Se definen propiedades y métodos para añadir funcionalidad a las estructuras y clases utilizando la misma sintaxis que se utiliza para definir constantes, variables y funciones.

A diferencia de otros lenguajes de programación, Swift no requiere la creación de archivos de interfaz e implementación independientes para estructuras y clases personalizadas. En Swift, se define una estructura o clase en un solo archivo, y la interfaz externa a dicha clase o estructura se pone automáticamente a disposición de otro código.

Comparación de estructuras y clases

Las estructuras y las clases en Swift tienen muchas cosas en común. Ambas pueden:

  • Definir propiedades para almacenar valores

  • Definir métodos para proporcionar funcionalidad

  • Defina subíndices para proporcionar acceso a sus valores utilizando la sintaxis de subíndices

  • Definir inicializadores para configurar su estado inicial

  • Ampliar para expandir su funcionalidad más allá de una implementación predeterminada

  • Cumplir con los protocolos para proporcionar una funcionalidad estándar de un cierto tipo

Para obtener más información, consulte Propiedades , Métodos , Subíndices , Inicialización , Extensiones y Protocolos .

Las clases tienen capacidades adicionales que las estructuras no tienen:

  • La herencia permite que una clase herede las características de otra.

  • La conversión de tipos le permite comprobar e interpretar el tipo de una instancia de clase en tiempo de ejecución.

  • Los desinicializadores permiten que una instancia de una clase libere cualquier recurso que tenga asignado.

  • El conteo de referencias permite más de una referencia a una instancia de clase.



Sintaxis de definición

Las estructuras y las clases tienen una sintaxis de definición similar. Se introducen las estructuras con la structpalabra clave y las clases con la classpalabra clave. Ambas colocan su definición completa entre llaves:




A continuación se muestra un ejemplo de una definición de estructura y una definición de clase:


Las estructuras y enumeraciones son tipos de valor

Un tipo de valor es un tipo cuyo valor se copia cuando se asigna a una variable o constante, o cuando se pasa a una función.
De hecho, has usado tipos de valor extensamente en los capítulos anteriores. De hecho, todos los tipos básicos de Swift (enteros, números de punto flotante, booleanos, cadenas, arrays y diccionarios) son tipos de valor y se implementan como estructuras en segundo plano.
En Swift, todas las estructuras y enumeraciones son tipos de valor. Esto significa que cualquier instancia de estructura y enumeración que crees, y cualquier tipo de valor que tengan como propiedad, siempre se copia al pasarse en tu código.





CLASES

Clase, es una plantilla para la creación de objetos de datos según  un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables o atributos -el estado, y métodos apropiados para operar con dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase, 



Una Clase, es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables o atributos -el estado, y métodos apropiados para operar con dichos datos el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase mientras los Protocolos, son plantillas de especificación que se definen para crear reglas determinadas que se deben cumplir en una implementación que se pueden usar en varias clases o structs. Definen requisitos a implementar utilizando solamente las cabeceras de las propiedades o métodos.

Los protocolos

-No obligan a la instanciación ni a la inicialización previa.

-No soportan herencia.

-Tipos de datos por valor.


CLASES de PROTOCOLOS y HERENCIAS

En Swift se utilizan mucho los protocolos, ya que en casi todas las clases del modelo de vista y controlador son utilizados. Un ejemplo común es la clase ViewController que puede estar asociada a una interface gráfica que esta de conformidad a los protocolos UITableViewDataSource y

UITableViewDelegate.

class ViewController: UIViewController, UITableViewDataSource,

UITableViewDelegate


@IBOutlet var tableView: UITableView!

var items: [String] = []

...

}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

{ return items.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath:

IndexPath) -> UITableViewCell {

@IBOutlet var tableView: UITableView!

var items: [String] = []

...

}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

{ return items.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath:

IndexPath) -> UITableViewCell {

@IBOutlet var tableView: UITableView!

var items: [String] = []

...

}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

{ return items.count

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath:

IndexPath) -> UITableViewCell {

// Fetch Item let item = items[indexPath.row]

// Dequeue Cell let cell = tableView.dequeueReusableCell(withIdentifier:

"TableViewCell", for: indexPath)

// Configure Cell

cell.textLabel?.text = item

return cell

}



Comentarios

Entradas populares