< Common SwiftUI errors and how to fix them | How to fix “Initializer 'init(_:rowContent:)' requires that ‘SomeType’ conform to 'Identifiable’” > |
Updated for Xcode 14.2
SwiftUI’s views should be structs, which means they are immutable by default. If this were our own code we could mark methods using mutating
to tell Swift they will change values, but we can’t do that in SwiftUI because it uses a computed property.
If you want to change a property’s value while your program runs, you should mark it using @State
, like this:
@State private var runCount = 0
For more complex properties, such as reference types or values that are shared across multiple views, you should use @StateObject
, @ObservedObject
or @EnvironmentObject
instead.
SPONSORED Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.