Desarrollador iOS: pregunta de entrevista

¿Cuándo usas actors en Swift?

Los actors serializan acceso a su estado mutable aislado y evitan carreras entre dominios; cruzar el límite requiere await, pero no vuelven atómicos automáticamente los flujos de varios pasos.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Un actor es un tipo de referencia cuyo estado mutable solo puede tocarse desde dentro del actor, una llamada a la vez; desde fuera, cada llamada a un método es asíncrona y exige await, y el compilador rechaza el acceso síncrono. Eso elimina las carreras de datos por construcción. Como un await dentro de un método del actor es un punto de suspensión, otra llamada puede intercalarse ahí, así que un invariante que abarca dos awaits debe volver a comprobarse al reanudar. @MainActor es el actor del estado de UI. Los actores encajan en cachés compartidas, gestores de conexiones y cualquier objeto accedido desde muchas tareas; los tipos de valor puros y los objetos de una sola tarea no lo necesitan.

Ejemplo

Un actor ImageCache guarda un diccionario de imágenes descargadas; diez tareas concurrentes llamando a await cache.image(for: url) nunca corrompen el diccionario. Como la propia descarga hace await, dos tareas pidiendo la misma URL pueden fallar ambas y descargar dos veces, así que el actor mantiene un diccionario de Tasks en vuelo y devuelve la existente.

Errores frecuentes

  • Tratar un método de actor con varios await como atómico.
  • Marcar todo como @MainActor y serializar trabajo de fondo en el hilo de UI.
  • Pasar instancias de clase no Sendable entre actores e ignorar los avisos del compilador.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador iOS