Property wrappers
In Swift, property wrappers are program entities with names starting with @
.
Property wrappers are “logic” code fragments, which are executed whenever set
or get
is executed on that property. In our case, a property or an attribute is, to keep things simple, just a fancy name for a variable within our struct.
So, whenever you “do” something to that variable, the corresponding property wrapper will be invoked.
In the case of @State
, which is a property wrapper defined by Apple, it tells the following SwiftUI a few things about the view struct:
- It tells SwiftUI that the value should be persisted and not reset to its initial value whenever the view gets redrawn
- It tells SwiftUI that a property’s value is allowed to change
- It tells SwiftUI to redraw that corresponding view whenever the
@State
property changes
The following figure shows you a conceptual flowchart on how SwiftUI uses the @State
wrapper to...