@State memory leak Xcode 16.2

Hi,

A class initialized as the initial value of an @State property is not released until the whole View disappears. Every subsequent instance deinitializes properly.

Am I missing something, or is this a known issue?

struct ContentView: View {
    // 1 - init first SimpleClass instance
    @State var simpleClass: SimpleClass? = SimpleClass(name: "First")

    var body: some View {
        VStack {
            Text("Hello, world!")
        }
        .task {
            try? await Task.sleep(for: .seconds(2))
            
            // 2 - init second SimpleClass instance and set as new @State
            // "First" should deinit
            simpleClass = SimpleClass(name: "Second")
            
            // 3 - "Second" deinit just fine
            simpleClass = nil
        }
    }
}

class SimpleClass {
    let name: String
    
    init(name: String) {
        print("init: \(name)")
        self.name = name
    }
    
    deinit {
        print("deinit: \(name)")
    }
}

output:

init: First
init: Second
deinit: Second

Thanks

@State memory leak Xcode 16.2
 
 
Q