Код: Выделить всё
extension Tips {
static let somethingHappened = Tip.Event(id: "somethingHappened")
}
struct TestTip: Tip {
let title = Text("Test tip")
let message = Text("This is a description")
var rules: [Rule] {
#Rule(Tips.somethingHappened) { $0.donations.count > 0 }
}
}
Код: Выделить всё
tipStatusObserverTask = Task { [tip, weak self] in
print("observing \(tip.id)")
for await status in tip.statusUpdates {
guard let self, !Task.isCancelled else {
return
}
print("tip status: \(status)")
if case .available = status {
print("will present \(tip.id)")
displayTip()
}
}
print("done observing \(tip.id)")
}
Код: Выделить всё
@objc func didPressButton() {
Tips.somethingHappened.sendDonation {
print("donated Tips.somethingHappened")
}
}
Код: Выделить всё
statusUpdates
Вот проект это воспроизводит проблему на случай, если кто-нибудь захочет попробовать: https://www.icloud.com/iclouddrive/085F ... TipKitTest
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-donation