0Pricing
SwiftUI Academy · レッスン

@Model型を定義する

クラスにアノテーションを付けて永続モデルにします。

「@Model型を定義する」はCoddyKit上の無料SwiftUI Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これは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. 🎉

よくある質問

「@Model型を定義する」レッスンは無料ですか?

はい。「@Model型を定義する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SwiftUI Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SwiftUI Academyコースには全4レッスンが含まれています。

「@Model型を定義する」で何を学びますか?

クラスにアノテーションを付けて永続モデルにします。 ブラウザで直接実行するハンズオンコードでSwiftUI Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

SwiftUI Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwiftUI Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「@Model型を定義する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwiftUI Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwiftUI Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. @Model型を定義する
  2. モデルコンテナとコンテキスト
  3. @Queryでクエリを実行する
  4. 挿入、更新、削除
← SwiftUI Academyに戻る