在SwiftUI中,我有一个published属性
@Published
var name: String
当名称更新时,它调用一个应用程序并设置其他值。
$name
...
...
.assign(to: &$something)
现在我想在不更新名称的情况下调用它
你想做这样的事情吗?
import UIKit
import Combine
import SwiftUI
import Foundation
class AddPassaround : ObservableObject {
@Published var name: String = ""
@Published var reversed : String = ""
let passaround = PassthroughSubject<String, Never>()
init() {
$name
.merge(with: passaround)
.map { String($0.reversed()) }
.assign(to: &$reversed)
}
func doIt() {
$reversed.sink { print($0) }
name = "reversedFromSettingName"
print(name)
passaround.send("reversedFromPassaround")
print(name)
}
}
AddPassaround().doIt()
这将添加第二个名为passaround
的发布者,您可以通过将值发布到name或通过将值传递到passaround
发布者来调用$name
之后的行为。