Balbas Code

SwiftUI における context とは?

公開日: 2023-09-28 22:31:17
更新日: 2023-09-28 22:32:25


SwiftUI における context とは?
業務をしていてよく出てくるんだけど、実態が何なのかよくわかっていなかったので少し調べてみました。


SwiftUI における contextは主に View のライフサイクルやその実行環境に関する情報を持つものを指すことが多いです。特定の機能や状況においては、context という名前が異なる意味を持つこともあります。以下に、SwiftUIのいくつかの場面での context の利用を解説します。


 



1.Core Dataの管理オブジェクトコンテキスト
NSManagedObjectContext は Core Data の操作に使用されるコンテキストです。このコンテキストを SwiftUI ビューで使用する場合、@Environment プロパティラッパーを使って注入できます。


@Environment(\.managedObjectContext) var context


上記のようにして、context にアクセスしてデータの読み取りや保存を行うことができます。



2.background 修飾子の context
background 修飾子を使用する際には、context を利用して背景に表示するビューのサイズや形状を決定できます。


Text("Hello, SwiftUI!")
.background { context in
if context.isHighlighted {
Color.blue
} else {
Color.red
}
}

 


 



3.ContextMenucontext
ContextMenu を使用する際、context を利用して選択されたアイテムやアクションに関する情報にアクセスできます。


Text("Press and hold!")
.contextMenu { context in
Button("Action 1") {
// Handle action
}
if context.isHighlighted {
Button("Highlighted Action") {
// Handle action
}
}
}

 




これらの例のように、SwiftUI のさまざまなコンテキストでは context が異なる情報や機能を提供します。常に公式のドキュメントや関連するリソースを参照し、どのようなコンテキストで context がどのような役割を果たしているのかを理解することが重要です。