SwiftUI Academy · บทเรียน

สถานะกำลังโหลดและข้อผิดพลาด

แสดงตัวหมุนและจัดการความล้มเหลวอย่างเหมาะสม

บทเรียน 4 จาก 413 ขั้นตอน

สถานะกำลังโหลดและข้อผิดพลาด เป็นบทเรียน SwiftUI Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SwiftUI Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SwiftUI Academy มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

Every Fetch Has Phases

A real request moves through states: loading, success, and failure. Showing each one makes your app feel trustworthy. 🔄

Modeling State with an Enum

An enum captures each phase cleanly. The view then switches on it to decide exactly what to display.

enum Phase { case loading, loaded([User]), failed(String) }

Showing a Spinner

While loading, show a ProgressView. This native spinner reassures users that something is happening behind the scenes.

ProgressView("Loading...")

Switching on the Phase

Use a switch in your body to render a spinner, the data, or an error view based on the current phase.

switch phase {
case .loading: ProgressView()
case .failed(let msg): Text(msg)
case .loaded(let users): List(users)
}

Catching the Error

Wrap the fetch in do/catch and move to the failed phase on error, storing a friendly message for the screen.

catch { phase = .failed("Could not load") }

Friendly Error Messages

Avoid raw error text. Show a clear sentence the user understands, like "Check your connection and try again."

Offering a Retry

On failure, add a retry button that runs the fetch again. Letting users recover beats a dead-end error screen.

Button("Retry") { Task { await load() } }

The Empty State

Success with no data deserves its own empty view, like "No results yet", so the screen never looks broken.

Setting Loading First

Move to the loading phase before awaiting. That instantly shows the spinner so the screen never feels frozen.

phase = .loading
phase = .loaded(try await loadUsers())

Avoiding Flicker

For very fast responses, a tiny delay before hiding the spinner prevents a jarring flash of loading UI.

Wiring It to .task

Kick off the whole flow from .task, which sets loading, fetches, and lands on loaded or failed automatically.

.task { await load() }

Quick Check

Quick check on handling request phases.

Recap: States

You now model fetches as loading, loaded, and failed, show a spinner and friendly errors with retry, and drive it all from .task. 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Swift ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “สถานะกำลังโหลดและข้อผิดพลาด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สถานะกำลังโหลดและข้อผิดพลาด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SwiftUI Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SwiftUI Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สถานะกำลังโหลดและข้อผิดพลาด”

แสดงตัวหมุนและจัดการความล้มเหลวอย่างเหมาะสม คุณปฏิบัติ SwiftUI Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SwiftUI Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SwiftUI Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “สถานะกำลังโหลดและข้อผิดพลาด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SwiftUI Academy นี้ได้ไหม

ได้ บทเรียน SwiftUI Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ถอดรหัส JSON ด้วย Codable
  2. เรียกใช้ API ด้วย URLSession
  3. ตัวปรับแต่ง .task
  4. สถานะกำลังโหลดและข้อผิดพลาด
← กลับไปที่ SwiftUI Academy