Programa profesional “Desarrollador iOS” : 5 meses. Prácticas recomendadas para desarrollar aplicaciones móviles con Swift 5. Se esperan los mejores graduados en las entrevistas de 12 empresas asociadas a OTUS, por lo tanto, publicamos una traducción del artículo final de la serie “Preguntas de entrevista iOS (Swift)”, donde consideraremos más docenas de preguntas, cuyas respuestas lo ayudarán con el empleo.

1. ¿Qué son las fallas y dónde se pueden usar?
- Los cierres son fragmentos de código independientes que se pueden pasar a una función como argumento o usarse en un programa.
- Los cierres en Swift son como bloques en C y Objective-C y como lambdas en otros lenguajes de programación.
- Esto es casi lo mismo que las funciones, pero no es necesario nombrar los cierres.
- No es necesario declarar el tipo de cada parámetro, pero si lo hace, no necesita especificar el tipo del valor de retorno.
Siga el enlace para ver todas las opciones de sintaxis de cierre.
2. ¿Qué son los cierres de escape / no escapado?
@nonescaping (estándar) cierres:
- Cuando se pasa el cierre en los argumentos de la función yy se usa antes de que se ejecute el cuerpo de la función y regrese el control.
- Cuando se completa la función , el cierre pasado queda fuera de alcance y ya no existe en la memoria.
@escaping (fugitivo) cierres:
- Cuando se pasa el cierre en los argumentos de la función y se usa después de que se ejecuta el cuerpo de la función y se devuelve el control.
- Cuando se completa la función , el cierre transmitido continúa existiendo en el alcance y permanece en la memoria hasta que se completa el cierre. el enlace
3. Indique qué tipos de colecciones están disponibles en Swift?

- Matrices : se utilizan para almacenar varios valores del mismo tipo en un formulario ordenado.
- Set (Set) : se usa para almacenar diferentes valores del mismo tipo en una forma desordenada.
- Diccionarios : se utilizan para almacenar pares clave-valor en una forma desordenada.
4. ¿Cómo se define la clase base en Swift?
En Swift, las clases que no heredan de la clase base y las clases que define sin especificar una superclase, se convierten automáticamente en clases base.
5. ¿Qué son los desinfectantes y cómo se escriben en Swift?
El inicializador se declara inmediatamente antes de liberar la memoria ocupada por la instancia de clase. El desinicializador se escribe con la palabra clave deinit . Se utiliza si necesita realizar alguna acción o limpieza antes de liberar la memoria ocupada por el objeto.
Por ejemplo , si crea una clase personalizada para abrir un archivo y escribir algunos datos en él, deberá cerrar el archivo antes de liberar la memoria ocupada por la instancia de clase.
El desinfectante se escribe sin corchetes y no acepta ningún parámetro.
deinit { // }
6. ¿Cuándo se usan los signos de interrogación doble “??”?
Este operador se llama operador de unión nula . Se utiliza para establecer el valor predeterminado si la opción es nula.
let a: String? = nil let b = "nil coalescing operator" let result = a ?? b print(result) //:"nil coalescing operator"
- un ?? b descomprime a opcional si contiene un valor, o devuelve el valor predeterminado b si a es nulo.
- La expresión a siempre tiene un tipo opcional. La expresión b debe coincidir con el tipo que se almacena dentro de a.
6. ¿Cuál es la diferencia entre '?' ¿Y '!'
El símbolo "?"
- Cuando trabaje con opciones, puede poner "?" delante de conjuntos de comandos como métodos, propiedades y subíndices.
- Si el valor es anterior a "?" es igual a cero, entonces todo lo que viene después de "?" ignorado, y el valor de toda la expresión se vuelve nulo.
- De lo contrario, la opción se desempaqueta y todo lo que viene después del "?" actúa sobre el valor desempaquetado.
- En ambos casos, el valor de toda la expresión es opcional.
El símbolo "!"
- Después de verificar que lo opcional contiene un valor, puede acceder a su valor base agregando un signo de exclamación (!) Al final del nombre opcional.
- El signo de exclamación en realidad dice: “Sé que esta opción realmente importa; por favor úsalo "
- Úselo solo si está absolutamente seguro de que la opción implícitamente desempaquetada es importante la primera vez que accede a ella.
7. ¿Qué es un alias de tipo en Swift?
Una declaración de alias de tipo introduce un alias con nombre de un tipo existente en el programa. Las declaraciones de alias de tipo se declaran utilizando la palabra clave typealias.
typealias name = tipo existente
typealias StudentName = String let name:StudentName = "Jack"
Puede usar typealias para la mayoría de los tipos en Swift, por ejemplo:
- Tipos incorporados (p. Ej., String, Int)
- Tipos personalizados (por ejemplo, clases, estructuras, enumeraciones)
- Tipos complejos (por ejemplo, cierres)
8. ¿Cuál es la diferencia entre funciones y métodos en Swift?
Un método es una función asociada con una clase, estructura o enumeración. Esto se aplica tanto a los métodos de instancia como a los métodos de tipo.
Función : declarada en el ámbito global y no pertenece a ningún tipo.
Las funciones pueden definirse fuera de las clases o dentro de las clases / estructuras / enumeraciones, mientras que los métodos deben definirse dentro y formar parte de las clases / estructuras / enumeraciones.
9. ¿Cuál es la sintaxis de los parámetros externos?
Un parámetro externo nos permite dar nombres a los parámetros de la función para que su propósito sea más comprensible.
potencia funcional (base a: Int, exponente b: Int) -> Int
* A veces es útil nombrar cada parámetro cuando se llama a una función para indicar el propósito de cada argumento que se pasa a la función.
Si desea que los usuarios de su función proporcionen nombres de parámetros cuando se llama, defina un nombre de parámetro externo para cada parámetro además del nombre del parámetro local. *
10. ¿Es posible redefinir estructuras y enumeraciones en Swift?
No puede subclasificar una estructura o enumeración, ni puede anularlas. Debido a que la estructura es un tipo de valor, y el compilador necesita saber su tamaño exacto en el momento de la compilación, lo que hace imposible la anulación.
Para encontrar las partes anteriores, siga los enlaces Parte 1 , Parte 2 , Todo sobre cierres , Todo sobre propiedades
Eso es todo! Estamos seguros de que las traducciones serán útiles no solo para los estudiantes del curso iOS Developer , sino también para muchos usuarios de Habr. ¡Le deseamos éxito profesional y esperamos los próximos grupos de nuestros programas en línea con derechos de autor!