Observation и Combine проблемы с миграцией

swift
ios

#1

Добрый день товарищи разработчики.

Столкнулся с проблемой миграции от ObservableObject к Observable.

У Apple есть великолепная инструкция по миграции, и даже почти вопросов не вызывает. Но в ней нет информации, как сохранить код из Combine.

Вот пример класса с протоколом ObservableObject:

class RawImageRenderer: NSObject, MTKViewDelegate, ObservableObject {
   
    @Published var scale: CGFloat = 1.0
    
    var cancellable: Set<AnyCancellable> = []
    
    let device: MTLDevice
    let view: MTKView
    
    override init() {
        self.device = MTLCreateSystemDefaultDevice()!
        self.view = MTKView(frame: .zero, device: self.device)
        self.view.colorPixelFormat = .rgba16Float

        super.init()
       
        if let layer = self.view.layer as? CAMetalLayer { layer.wantsExtendedDynamicRangeContent = true }
        
        $scale
            .dropFirst()
            .debounce(for: 0.2, scheduler: RunLoop.main)
            .sink { _ in
                self.view.preferredFramesPerSecond = 2
            }
            .store(in: &cancellable)
    }
    
}

Вопрос состоит в следующем - как сохранить конструкции, относящиеся к работе с Combine типа .sink, .debounce, .store и тд ?

Нигде в документации не нашел. Пока вижу только расписывать функционал при помощи .get {} .set{}

Может кто сталкивался с таким? Буду благодарен за подсказки