Публикации по теме 'combine'


Сохранение логики фильтрации с помощью Swift Combine
Комбинирование на основе данных В предыдущем эпизоде мы успешно смоделировали поток значений и добавили один простой оператор ( delay ) к каждому значению. В этой статье мы рассмотрим еще несколько операторов, сделаем их Codeable и, наконец, переведем их в издатель Combine во время выполнения. Типы операторов Прежде чем мы начнем моделировать операторы, нам нужно понять, сколько типов операторов существует. Веб-сайт ReactiveX делит их примерно на 10 типов: создание,..

Объединение издателей, подписок и подписчиков — под капотом
С примерами реализации Возможно, вы уже изучили нативный фреймворк Combine, выпущенный Apple на WWDC19, и запомнили такой огромный список издателей, подписчиков и операторов. Возможно, вы знаете только то, что первый отвечает за генерацию новых асинхронных значений, которые должны обновляться вторым. Хорошо, из чего он состоит! Но часто многие из нас не вникали в то, как эти протоколы взаимодействуют между собой, и некоторые могут не знать, что это протоколы (ага!). Итак, в этой..

Вопросы по теме 'combine'

SwiftUI и Combine не работают плавно при асинхронной загрузке изображения
Когда я пытался использовать SwiftUI & Combine для асинхронной загрузки изображения, он работал нормально. Затем я пытаюсь реализовать это в динамическом списке и обнаружил, что только одна строка (последняя строка) будет отображаться правильно,...
964 просмотров
schedule 06.12.2021

Как связать массив и список, если массив является членом ObservableObject?
Я хочу создать MyViewModel , который получает данные из сети, а затем обновляет массив результатов. MyView должен подписаться на $model.results и показать List с заполненными результатами. К сожалению, я получаю сообщение об ошибке «Тип...
1722 просмотров
schedule 16.11.2021

Swift Combine: как создать собственную раковину?
Я использую RxSwift примерно со следующим extension Reactive where Base: UIViewController { public var showError: Binder<Error> { return Binder(self.base) { element, error in let alertVC = // create UIAlertController...
461 просмотров
schedule 08.12.2021

как опубликовать данные сетевого запроса с помощью Combine framework и SwiftUI
Я разрабатываю приложение для iOS с использованием swiftUI и Combine framework, а также MVVM. Я хочу обрабатывать запрос API входа в систему в отдельном классе LoginService, который используется в LoginViewModel. Теперь я хочу знать, как мне...
1056 просмотров
schedule 24.09.2021

Как в UIViewControllerRepresentable передать значение ObservedObject контроллеру представления и обновлять его каждый раз при изменении значений?
У меня есть структура UIViewControllerRepresentable , которая подписана на ObservableObject, например: struct ViewControllerWrapper: UIViewControllerRepresentable { @ObservedObject var chartVM = ChartViewModel() typealias UIViewControllerType =...
1570 просмотров
schedule 29.09.2021

SwiftUI - распространение уведомлений об изменениях через вложенные ссылочные типы
Я хотел бы расширить поведение ObservableObject в SwiftUI на вложенные классы, и я ищу правильный способ сделать это. Это можно сделать «вручную» с помощью Combine, но я полагаю, что есть более чистый способ сделать это с помощью SwiftUI, и я...
878 просмотров

Обработка ошибки аутентификации Firebase в приложении SwiftUI Combine
У меня есть приложение, в котором пользователи могут зарегистрироваться и войти в систему с помощью Firebase. Однако я не могу предупредить пользователя о каких-либо ошибках в представлении. Сначала у нас есть UserStore , который является...
674 просмотров

Комбинировать: Издателю нравится Future, но с несколькими значениями
У меня есть сторонняя библиотека ( Firestore ), в которой есть этот метод func listenToEvents(handler: ([Result], Error) -> Void) handler в этом методе вызывается много раз (после любых обновлений данных). Я хочу преобразовать его в...
736 просмотров
schedule 12.10.2021

как остановить таймер издателя?
Я какое-то время играю с издателем таймеров на детской площадке. ниже мой код let timer = Timer .publish(every: 1.0, on: .main, in: .common) .autoconnect() var counter = 0 let subscriber = timer .map({ (date) -> Void in...
837 просмотров
schedule 13.10.2021

Как объединить 2 издателя и стереть значения в Void?
У меня есть 2 издателя, где я хочу выполнить действие на основе любого ответа. Меня не волнуют ценности. Я пытаюсь сделать что-то вроде этого: var hasChangedPublisher: AnyPublisher<(Void, Void), Never> { Publishers.CombineLatest(...
1096 просмотров
schedule 17.10.2021

Отсутствует аргумент Swift Custom Struct из: Decoder
Привет, я использую SwiftUI и пытаюсь создать ObservableObject для одного из моих представлений. class ResponseModelObject: ObservableObject { @Published var response = SongLinkAPIResponse() } SongLinkAPIResponse выглядит так: public...
315 просмотров
schedule 22.09.2021

Как переадресовать отправленные вызовы от одного PassthroughSubject к другому (например, цепочка PassthroughSubject)?
Представьте, что у меня есть API для класса, который использует PassthroughSubject для получения входных данных: class Logger { let log: PassthroughSubject<String, Never> } Обычно я могу передать значение, вызвав...
108 просмотров
schedule 15.09.2021

Как обернуть шаблон делегата одноразовым издателем?
Обычно мы можем связать наш асинхронный код и объединить, заключив наш асинхронный код в одноразовый издатель, используя Future : func readEmail() -> AnyPublisher<[String], Error> { Future { promise in self.emailManager.readEmail()...
423 просмотров
schedule 06.10.2021

Добавляйте элемент к издателю, только если он хочет закончить без публикации какого-либо значения
У меня есть два издателя, каждый из которых может публиковать ценность или полную версию без публикации вообще. Я объединяю двух издателей и сравниваю их значения, выполняю некоторую пост-обработку значений и сохраняю их в моем локальном CoreData....
80 просмотров
schedule 07.10.2021

IOS 13 Combine Framework - @Published не работает (неизвестный атрибут «Опубликовано»)
Я смотрел сессию WWDC 2019 «Объединение на практике» ( https://developer.apple.com/videos/play/wwdc2019/721/ ). В видео они использовали следующий синтаксис для создания издателя: @Published var someName: String = "" Они сделали это для...
2934 просмотров
schedule 21.02.2022

Как передать данные из дочернего представления в родительское представление в другое дочернее представление в SwiftUI?
как следует из названия, я пытаюсь передать данные из одного дочернего представления (A) в другое дочернее представление (B) через родительское представление (P). Родительское представление выглядит так: @State var rectFrame: CGRect = .zero...
7735 просмотров
schedule 21.02.2022

Список сбоев анимации перезагрузки
Итак, у меня есть список, который изменяется, когда пользователь вводит ключевое слово для поиска, а когда нет результата, все ячейки разрушаются, и каким-то образом они перелетают в первый раздел, который выглядит некрасиво. Есть ли в моем...
839 просмотров
schedule 19.02.2022

Попытка ввести значения в издателя, но получаю неупорядоченные значения
Это чрезмерное упрощение того, чего я пытаюсь достичь с помощью комбинирования. Мне нужно ввести значение в общий издатель, если что-то случится. Здесь вы видите, что если число 2 получено картой, я использую команду send на исходном издателе, чтобы...
46 просмотров

Будьте уведомлены о множественных изменениях свойств ObservableObject в Combine
У меня вопрос по Swift Combine. Допустим, у меня есть ObservableObject с несколькими такими свойствами: class AppState: ObservableObject{ static let shared = AppState() @Published var a: Object? @Published var b: Object? @Published var c...
140 просмотров
schedule 03.03.2022

Сбой на Canvas SwiftUI
Я реализую небольшое приложение с новым фреймворком iOS SwiftUI. Я использую @EnvironmentObject , чтобы привязать свои данные к просмотру. Все работает, но Canvas вылетает и ничего не показывает. Почему? struct CompetitionsListSwiftUIView :...
3779 просмотров
schedule 12.03.2022