Публикации по теме '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 просмотров
schedule
16.10.2021
Обработка ошибки аутентификации Firebase в приложении SwiftUI Combine
У меня есть приложение, в котором пользователи могут зарегистрироваться и войти в систему с помощью Firebase. Однако я не могу предупредить пользователя о каких-либо ошибках в представлении.
Сначала у нас есть UserStore , который является...
674 просмотров
schedule
29.09.2021
Комбинировать: Издателю нравится 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 просмотров
schedule
19.02.2022
Будьте уведомлены о множественных изменениях свойств 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