SwiftUI Academy · บทเรียน

กำหนดชนิด @Model

ใส่คำอธิบายกำกับคลาสให้เป็นโมเดลถาวร

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

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

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

Meet SwiftData

SwiftData is Apple's modern way to save app data right on the device. You describe your data once, and it handles storage for you. 💾

The @Model Macro

You turn a plain class into a saved type by adding the @Model macro above it. That one line makes every instance persistable.

@Model
class Task {
}

Stored Properties

Every stored property on a @Model class is saved automatically. No extra annotations are needed for basic values like text or numbers.

@Model
class Task {
    var title: String
    var isDone: Bool
}

Models Are Classes

SwiftData models must be classes, not structs. SwiftData tracks them by reference so it can watch changes and save them.

Adding an Initializer

Give your model an init so you can create instances with starting values. This keeps your stored properties set when a task is made.

init(title: String, isDone: Bool = false) {
    self.title = title
    self.isDone = isDone
}

Supported Property Types

SwiftData saves common types out of the box: String, Int, Double, Bool, Date, and Data all just work without setup.

var due: Date
var priority: Int

Optional Properties

Mark a value optional when it may be missing. SwiftData stores nil happily, which is great for fields the user has not filled in yet.

var note: String?

Unique Constraints

Add @Attribute(.unique) to stop duplicate values for a property. SwiftData will keep that field one-of-a-kind across your store.

@Attribute(.unique) var id: UUID

Relationships Between Models

Models can point to each other with a @Relationship. This links one record to another, like a project owning many tasks.

@Relationship var tasks: [Task]

Cascade Deletes

A .cascade delete rule removes related records together. Delete a project and its tasks vanish too, keeping your data tidy.

@Relationship(deleteRule: .cascade)
var tasks: [Task]

Ignoring a Property

Use @Transient for values you do not want saved, like a temporary cache. SwiftData skips these when writing to disk.

@Transient var isEditing = false

Quick Check

Quick check on defining models.

Recap: Defining Models

You learned that @Model turns a class into saved data, with normal properties, optionals, unique attributes, and relationships. Your data shape is ready. 🎉

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

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

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

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

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

บทเรียน “กำหนดชนิด @Model” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “กำหนดชนิด @Model”

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

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

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

บทเรียน “กำหนดชนิด @Model” ใช้เวลานานแค่ไหน

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

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

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

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

  1. กำหนดชนิด @Model
  2. คอนเทนเนอร์และบริบทของโมเดล
  3. ค้นหาด้วย @Query
  4. การเพิ่ม การอัปเดต และการลบ
← กลับไปที่ SwiftUI Academy