¿Para qué se usa en Swift? ¿Por qué lo usamos?

Una autorreferencia es algo bastante común en los lenguajes orientados a objetos. C # y Java tienen `this`, Ruby, Python y Swift tienen` self`, etc.

Los usos varían un poco de un idioma a otro, pero uno de los usos más comunes es una forma de referirse a una variable de instancia que está sombreada por un nombre de parámetro, por ejemplo, en un método setter.

Por ejemplo:

Empleado de clase {
var employeeNumber: Int ?;

func setEmployeeNumber (employeeNumber: Int) {
self.employeeNumber = employeeNumber;
}
}

Los únicos otros lugares donde usar self es bastante necesario es cuando estás escribiendo un cierre que usa una variable de instancia.

Podemos ampliar un poco el ejemplo anterior:

Empleado de clase {
var employeeNumber: Int ?;

init (employeeNumber: Int) {
self.employeeNumber = employeeNumber;
}

func isFoundIn (employeeNumbers: [Int]) -> Bool {
return! employeeNumbers.filter ({$ 0 == self.employeeNumber}). isEmpty;
}

}

Sin el ‘self’ en el cierre, Xcode dirá “la referencia a la propiedad ’employeeNumber’ en el cierre requiere un ‘self’ explícito para hacer explícita la semántica de captura”.

Puede encontrar que agregar self en otros escenarios hace que su código sea más o menos claro, pero en la mayoría de los otros casos, los usos de ‘self’ son completamente opcionales y se usan principalmente para comunicar que la variable o método es una variable / método de instancia, pero eso suele ser bastante claro de todos modos.

Self in swift representa la referencia a la clase actual.

Por ejemplo, si una clase hereda de la clase UIViewController y tiene métodos y propiedades asociadas, podemos acceder a ella con self.object y self.method ()

viewcontroller de clase pública: UIViewController {

var strName: cadena!

func printString (string: String) {
println (“La cadena es \ (cadena)”)
}

func viewDidLoad () {
self.strName = “ABC”
self.printString (strNAme)
}
}

El resultado se imprimirá como “The String is ABC” en la consola.

auto es como preguntar quién es el dueño de esta clase actual …

Al igual que una clase tiene una propiedad o una variable parpadea, la clase también se puede usar en su clase secundaria …

aquí es donde self está allí … self está llamando a la misma clase que contiene el verificable que estoy usando … si está allí, se mostrará en globo rápido …

esto es casi lo mismo en la mayoría de los idiomas … al igual que swift tiene este concepto de sí mismo.

Espero que esto te ayude, amigo …