Tip.statusUpdates не срабатывает при пожертвовании на мероприятиеIOS

Программируем под IOS
Ответить
Anonymous
 Tip.statusUpdates не срабатывает при пожертвовании на мероприятие

Сообщение Anonymous »

У меня есть подсказка, которую нужно показывать после определенного события:

Код: Выделить всё

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 }
}
}
Я хотел бы представить этот совет, когда его статус станет .доступным. Для этого я наблюдаю statusUpdates в задаче:

Код: Выделить всё

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 не срабатывает, поэтому подсказка никогда не отображается. Подсказка появляется после перезапуска приложения. Что происходит? Что я делаю не так?

Код: Выделить всё

statusUpdates
работает нормально, если правило основано на изменении @Parameter, поэтому я ожидаю, что этот подход будет работать для правил, основанных на событиях.
Вот проект это воспроизводит проблему на случай, если кто-нибудь захочет попробовать: https://www.icloud.com/iclouddrive/085F ... TipKitTest

Подробнее здесь: https://stackoverflow.com/questions/792 ... t-donation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»