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:
- Dado un período de tiempo de 10-20 años, ¿qué podemos ver o esperar en el avance de Android e iOS?
- Hice una lista de tareas en tutoriales usando NSMutableArray como la lista y NSObject con propiedades como un solo elemento. Quiero almacenar los datos para no perderlos cada vez que se abra la aplicación. ¿Cómo puedo hacer esto?
- ¿Cómo funcionan los drones? ¿Puedo integrar drones con una aplicación de Android o iOS?
- Cómo hacer jailbreak para iOS 10.3.2
- Cómo aumentar su almacenamiento interno en iOS 9
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.