Konvertieren Sie ein DispatchQueue-lastiges Modul in async/await
Wann einsetzen: Sie besitzen ein Modul, das DispatchQueue, Completion-Handler und @escaping-Abschlüsse mischt; Sie möchten asynchron/warten.
Voraussetzungen
- Xcode mit Swift 5.9+ (Swift 6-Modus, wenn Sie strikte Parallelität wünschen) — Installieren Sie Xcode aus dem App Store
- Fertigkeit installiert — /plugin Marketplace kylehughes/the-inoffizielle-swift-concurrency-migration-skill hinzufügen
Ablauf
-
Fordern Sie einen Migrationsplan anFühren Sie mich durch die Migration von NetworkService.swift zu async/await und zitieren Sie dabei den Swift Concurrency Migration Guide.✓ Kopiert→ Planen Sie Verweise auf benannte Artikel im Leitfaden
-
Bewerben Sie sich Schritt für SchrittBeginnen Sie mit der öffentlichen API-Oberfläche – konvertieren Sie Completion-Handler-Methoden in async/await.✓ Kopiert→ Code verwendet idiomatische asynchrone APIs, keine Wrapper-Rückrufe
-
Behandeln Sie Stornierung und IsolationFügen Sie den Aufgabenabbruch hinzu und legen Sie die Akteurisolation für den Cache fest.✓ Kopiert→ Richtige Task.checkCancellation + explizite Akteurisolierung
Ergebnis: Das Modul wurde sauber migriert, wobei die Argumentation an den eigenen Anleitungen von Apple orientierte.
Fallstricke
- Rückrufe in withCheckedContinuation einschließen, ohne den Besitz festzulegen — Migrieren Sie zuerst die Root-API; Lassen Sie Fortsetzungen nicht als dauerhafte Brücken