Это регрессия, которая была введена в Xcode 11.4. Я заметил это с .toggle()
на логических значениях, но похоже на ту же проблему:
import Foundation
import Combine
class Observable: ObservableObject {
var standard = false {
didSet {
print("Standard didSet")
}
}
@Published var published = false {
didSet {
print("Published didSet")
}
}
}
let observable = Observable()
observable.standard.toggle() //didSet fires
observable.published.toggle() //didSet does not fire in 11.4 but does in 11.3.1
observable.published = !observable.published //didSet fires
К счастью, как вы обнаружили, немедленное решение - просто явно назначить свойство, но я надеюсь, что Apple исправит его , Я подал это как большой в Feedback Assistant. Я постараюсь не забыть обновить здесь, если что-нибудь услышу назад.