Bird
Raised Fist0
Swiftprogramming~5 mins

Memberwise initializer in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a memberwise initializer in Swift?
A memberwise initializer is an automatically created initializer for structs in Swift. It lets you create an instance by providing values for each property directly.
Click to reveal answer
beginner
Does Swift automatically create a memberwise initializer for classes?
No, Swift does not automatically create a memberwise initializer for classes. It only does this for structs.
Click to reveal answer
beginner
Given this struct:
struct Car {
var make: String
var year: Int
}

How do you create a new Car instance using the memberwise initializer?
You create it by passing values for each property like this:<br><pre>let myCar = Car(make: "Toyota", year: 2020)</pre>
Click to reveal answer
intermediate
What happens if you add a custom initializer to a struct in Swift?
If you add a custom initializer, Swift does not generate the memberwise initializer automatically anymore. You have to write it yourself if you want it.
Click to reveal answer
beginner
Why is the memberwise initializer useful?
It saves time by letting you create instances quickly without writing your own initializer. It also makes your code cleaner and easier to read.
Click to reveal answer
Which Swift type automatically gets a memberwise initializer?
AEnum
BClass
CProtocol
DStruct
What do you need to provide when using a memberwise initializer?
AA closure
BOnly some properties
CValues for all properties
DNo values, it uses defaults
If you add a custom initializer to a struct, what happens to the memberwise initializer?
AIt is removed
BIt stays available
CIt becomes private
DIt throws an error
Can classes in Swift use memberwise initializers automatically?
ANo
BYes
COnly if they have no methods
DOnly if they inherit from NSObject
What is the main benefit of a memberwise initializer?
AAutomatically generate methods
BQuickly create instances with property values
CManage memory automatically
DEnforce access control
Explain what a memberwise initializer is and how it helps when creating struct instances in Swift.
Think about how you create a struct instance without writing your own initializer.
You got /4 concepts.
    Describe what happens to the memberwise initializer when you add a custom initializer to a Swift struct.
    Consider how Swift handles initializers when you add your own.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does a memberwise initializer in Swift do for a struct?
      easy
      A. It creates a function to print all properties.
      B. It deletes all properties from the struct.
      C. It automatically creates an initializer that sets all properties at once.
      D. It converts the struct into a class.

      Solution

      1. Step 1: Understand memberwise initializer purpose

        A memberwise initializer lets you create an instance by setting all properties in one call.
      2. Step 2: Recall Swift default behavior for structs

        Swift automatically provides this initializer for structs without custom initializers.
      3. Final Answer:

        It automatically creates an initializer that sets all properties at once. -> Option C
      4. Quick Check:

        Memberwise initializer = sets all properties at once [OK]
      Hint: Memberwise initializer sets all struct properties at once [OK]
      Common Mistakes:
      • Thinking it prints properties
      • Confusing with class initializers
      • Assuming it deletes properties
      2. Which of the following is the correct way to use a memberwise initializer for this struct?
      struct Book {
        var title: String
        var pages: Int
      }
      easy
      A. let myBook = Book(title -> "Swift Guide", pages -> 300)
      B. let myBook = Book("Swift Guide", 300)
      C. let myBook = Book(title = "Swift Guide", pages = 300)
      D. let myBook = Book(title: "Swift Guide", pages: 300)

      Solution

      1. Step 1: Recall memberwise initializer syntax

        It uses parameter labels matching property names: title: and pages:.
      2. Step 2: Check each option

        let myBook = Book(title: "Swift Guide", pages: 300) uses correct syntax with labels and values. Others use wrong syntax or missing labels.
      3. Final Answer:

        let myBook = Book(title: "Swift Guide", pages: 300) -> Option D
      4. Quick Check:

        Memberwise initializer syntax = labels and values [OK]
      Hint: Use property names as labels in initializer call [OK]
      Common Mistakes:
      • Omitting labels in initializer
      • Using = instead of : in parameters
      • Using arrows -> instead of colons
      3. What will be the output of this Swift code?
      struct Point {
        var x: Int
        var y: Int
      }
      
      let p = Point(x: 5, y: 10)
      print(p.x + p.y)
      medium
      A. 510
      B. 15
      C. x: 5, y: 10
      D. Error: No memberwise initializer

      Solution

      1. Step 1: Understand memberwise initializer usage

        The struct Point has two Int properties and uses the memberwise initializer to set x=5 and y=10.
      2. Step 2: Calculate the print output

        p.x + p.y = 5 + 10 = 15, so print outputs 15.
      3. Final Answer:

        15 -> Option B
      4. Quick Check:

        5 + 10 = 15 [OK]
      Hint: Add property values after initializing with memberwise initializer [OK]
      Common Mistakes:
      • Concatenating numbers as strings
      • Expecting a print of property names
      • Assuming no initializer exists
      4. Identify the error in this code using a memberwise initializer:
      struct Car {
        var brand: String
        var year: Int
      }
      
      let myCar = Car(brand: "Toyota")
      medium
      A. Missing value for 'year' property in initializer
      B. Incorrect property name 'brand'
      C. Cannot create instance of struct
      D. Syntax error in struct declaration

      Solution

      1. Step 1: Check memberwise initializer requirements

        All properties must be initialized. 'year' is missing in the initializer call.
      2. Step 2: Identify error cause

        Since 'year' is not given a value, the code will cause a compile error.
      3. Final Answer:

        Missing value for 'year' property in initializer -> Option A
      4. Quick Check:

        All properties must be set in memberwise initializer [OK]
      Hint: Provide all properties when using memberwise initializer [OK]
      Common Mistakes:
      • Forgetting to initialize all properties
      • Assuming default values without setting
      • Misnaming properties in initializer
      5. Given this struct with a default property value:
      struct User {
        var name: String
        var age: Int = 18
      }

      Which initializer call is valid and why?
      hard
      A. let u = User(name: "Anna") // age uses default value
      B. let u = User(name: "Anna", age: 20) // must always provide age
      C. let u = User() // no parameters allowed
      D. let u = User(age: 18) // name can be omitted

      Solution

      1. Step 1: Understand default property values in structs

        Properties with default values can be omitted in memberwise initializer calls.
      2. Step 2: Analyze each initializer call

        let u = User(name: "Anna") // age uses default value provides 'name' only; 'age' uses default 18, which is valid. Others omit required 'name' or incorrectly require all parameters.
      3. Final Answer:

        let u = User(name: "Anna") // age uses default value -> Option A
      4. Quick Check:

        Default property values allow skipping parameters [OK]
      Hint: Skip properties with default values in initializer call [OK]
      Common Mistakes:
      • Trying to omit non-default properties
      • Assuming all properties must be provided
      • Calling initializer with no parameters when required
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard