Mi criterio: en la duda, weak. unowned cuando el otro no puede morir antes que vos, como una Tarjeta que no existe sin su Cliente.
Si te gustan estas preguntas, seguime: subo una así cada semana.
Los dos detalles:
1. Desde Swift 6.3 existe weak let (SE-0481). El libro oficial de Swift todavía dice que weak siempre va en var.
2. El crash de unowned no es comportamiento indefinido: Swift lo chequea y frena con un error claro. El que no chequea nada es unowned(unsafe).
Si te preguntan en una entrevista dónde corre un código, la respuesta senior arranca con "depende de los build settings".
Revisá los tuyos en Build Settings → Default Actor Isolation. Si te sirvió, guardalo.
Y el giro: activale al paquete solo Approachable Concurrency (NonisolatedNonsendingByDefault) y vuelve a imprimir true.
Con eso, una función async nonisolated corre en el actor de quien la llama. Acá el que llama es el main.
@mainactor Si te preguntan en una entrevista dónde corre un código, la respuesta senior arranca con "depende de los build settings".
Revisá los tuyos en Build Settings → Default Actor Isolation. Si te sirvió, guardalo.
@mainactor Y el giro: activale al paquete solo Approachable Concurrency (NonisolatedNonsendingByDefault) y vuelve a imprimir true.
Con eso, una función async nonisolated corre en el actor de quien la llama. Acá el que llama es el main.
@datafoxsoftware Muy bueno arrancar por State y Binding, generalmente lo que más cuesta al principio. Pensás sumar Observation en alguna sesión? Ver las dos formas ayuda a entender el código que uno se encuentra en proyectos reales 😊