🐥

SwiftUIの\.self について

2023/05/28に公開

SwiftUIでよく見る.selfという記述、具体的にはid: \.selfのような形で使用されることが多いですね。それでは、この.selfが何を意味しているのか、そしてなぜSwiftUIでよく使われるのかを説明していきましょう。

1. .self とは何か

.selfはSwiftのキーパス表記で、オブジェクト自体を指します。そして、\はそのキーパスを示すためのプレフィックスとなります。

例えば、ある配列 let numbers = [1, 2, 3]があるとき、numbers[0].selfと記述すると、このselfは「numbers[0]自体」という意味になります。つまり、その値は1です。

2. SwiftUIでの.selfの利用

では、なぜSwiftUIで.selfがよく使われるのかというと、それはSwiftUIがビューを管理する方法に関係しています。

SwiftUIでは、ビューの状態を追跡するために、各ビューに一意のIDが必要です。そして、その一意のIDを提供する方法の一つが\.selfを使用する方法です。

具体的には、ForEachListなどのビューで、コレクションの各要素をループして処理する際に、各要素を一意に識別するためのIDとして、その要素自体(つまりその.self)を使用することができます。

以下に例を示します:

ForEach(0..<5, id: \.self) { number in
    Text("Number is \(number)")
}

このコードは0から4までの数値をループし、それぞれについてテキストビューを生成します。そして、各テキストビューを一意に識別するためのIDとして、それぞれの数値自体を使用しています。

このように、.selfはSwiftUIでのビュー生成と管理にとても重要な役割を果たしています。

Discussion