Bird
0
0

Why does SwiftUI require ObservableObject classes to be reference types (classes) and not structs?

hard📝 Conceptual Q10 of 15
iOS Swift - State Management in SwiftUI
Why does SwiftUI require ObservableObject classes to be reference types (classes) and not structs?
ABecause ObservableObject relies on shared mutable state that structs cannot provide.
BBecause structs cannot conform to protocols.
CBecause structs do not support property wrappers.
DBecause classes are faster than structs.
Step-by-Step Solution
Solution:
  1. Step 1: Understand value vs reference types

    Structs are value types and copied on change; classes are reference types shared across views.
  2. Step 2: ObservableObject needs shared mutable state

    ObservableObject must notify multiple views about changes to the same instance, requiring reference semantics.
  3. Final Answer:

    Because ObservableObject relies on shared mutable state that structs cannot provide. -> Option A
  4. Quick Check:

    ObservableObject requires reference type for shared state [OK]
Quick Trick: ObservableObject needs shared mutable state, so must be class [OK]
Common Mistakes:
  • Thinking structs cannot conform to protocols
  • Believing property wrappers don't work with structs
  • Assuming classes are always faster

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More iOS Swift Quizzes