Size: a a a

iOS Developers — русскоговорящее сообщество

2021 April 11

A

Andrew in iOS Developers — русскоговорящее сообщество
Observable.of и не будет эмитить другие значения, только то, которое указано при создании, потом он завершается. Чтобы observable тип мог принимать новые значения, используйте Subject
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
ага, понял, спасибо, сейчас изучу
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
Посмотрите на этот пример. Тут не просто создаётся Bool, а именно BehaviorSubject<Bool>. На onNext посылаются новые значения
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
а как создавать такой сабжект для UserDefaults?
источник

G

GGsrvg in iOS Developers — русскоговорящее сообщество
Можешь обернуть и в сеттере вызывать onNext и в деф записывать значение
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
в UD пишет сторонний асинхронный поток, который вызывается из AppDelegate, а мне надо поймать его изменение и обработать во вью контроллере. разве так это возможно?
источник

G

GGsrvg in iOS Developers — русскоговорящее сообщество
Возможно, но без кода не понятно
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
Там скорее всего используется KVO. Но тогда это довольно муторно имплементить самому
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
я тогда подробнее опишу, что я хочу. а то может не в ту степь смотрю.

в сторонний сдк выполняет задачу и в делегате вызывает свой метод комплишена. в этом методе я пишу в UD флаг true/false.

в момент выполнения задачи, параллельно, запускается вью контроллер, который должен дождаться выполнения задачи. маркером выполнения задачи будет как раз флаг true, взятый из UD.

вот его мне надо и отловить
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
Вот, если интересно, как можно использовать KVO для ЮД https://stackoverflow.com/questions/43963220/how-to-use-kvo-for-userdefaults-in-swift
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
с зеленой галочкой?
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
Тут UserDefaults вообще не причём) просто оберните эту задачу в сервис, у которого будет сабджект, на который сможете подписаться. В колбеке асинхронного метода вызовите onNext на этот сабджект. А в контроллере соответственно подпишитесь на него
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
Да, но для вашей конкретной проблемы это костыльное решение
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
а есть где-то примеры почитать, потому что я с этим не работал вообще еще
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
Если грубо конвертировать то, что вы описали, то можно попробовать как-то так. В апп делегате инициализируете сервис, пробрасываете в контроллер и подписываетесь на сабджект
источник

A

Andrew in iOS Developers — русскоговорящее сообщество
А про почитать, просто не спеша посмотрите доки (начните здесь https://github.com/ReactiveX/RxSwift/blob/main/Documentation/GettingStarted.md), гляньте пару примеров в других приложениях
источник

S

Spirit💎 in iOS Developers — русскоговорящее сообщество
в данном коде у вас руками запускается сервис, у меня же не вариант запускать его из контроллера, он инициализируется в делегате и все, что могу с ним делать, это из его коллбека что-то вызвать
источник