Convierta un módulo pesado de DispatchQueue a async/await
Cuándo usarlo: Posee un módulo que combina DispatchQueue, controladores de finalización y cierres @escaping; quieres async/await.
Requisitos previos
- Xcode con Swift 5.9+ (modo Swift 6 si desea una concurrencia estricta) — Instale Xcode desde la App Store
- Habilidad instalada — /plugin Marketplace agrega Kylehughes/la-habilidad-de-migración-de-concurrencia-rápida-no oficial
Flujo
-
Solicite un plan de migraciónGuíame sobre la migración de NetworkService.swift a async/await, citando la Guía de migración de simultaneidad de Swift.✓ Copiado→ Referencias del plan artículos nombrados en la guía.
-
Aplicar paso a pasoComience con la superficie API pública: convierta los métodos del controlador de finalización a async/await.✓ Copiado→ El código utiliza API asíncronas idiomáticas, no devoluciones de llamadas envolventes
-
Manejar la cancelación y el aislamiento.Agregue la cancelación de tareas y decida el aislamiento del actor para el caché.✓ Copiado→ Task.checkCancellation adecuado + aislamiento explícito del actor
Resultado: El módulo migró limpiamente con un razonamiento vinculado a la propia guía de Apple.
Errores comunes
- Envolver devoluciones de llamada en withCheckedContinuation sin fijar la propiedad — Primero migre la API raíz; No dejes continuaciones como puentes permanentes.