combine相关内容

如何从发布者数组中创建发布者?

我正在使用 Swift Combine 并且想要制作一个从 Publisher 数组创建的 Publisher.每次数组中的一个发布者发出一个新元素时,它都应该发出一个元素数组. 在 RxSwift 中将如下所示: let obs1 = PublishSubject()让 obs2 = PublishSubject()让 arrayObs = [obs1, obs2)]Observabl ..
发布时间:2021-07-03 19:42:41 移动开发

SwiftUI + Combine,一起使用Models和ViewModels

我对 Swift 非常陌生,我目前正在尝试通过使用 SwiftUI + Combine 构建一个分租应用程序来学习.我想遵循 MVVM 模式并试图实现这一点.目前我有以下模型、视图模型和视图文件: 型号: 导入基础进口结合结构体输入金额{var myMonthlyIncome : 双倍var housemateMonthlyIncome : 双倍var totalRent : 双倍} V ..
发布时间:2021-06-04 21:02:38 移动开发

如何在Swift Combine中创建自定义链?

我正在尝试为Combine创建一个 LocationManager 包装器.我有一个发布者和一些触发发布者的功能.但是,我想将它们与自定义命令结合在一起. 这是我到目前为止所得到的: @available(OSX 10.15,iOS 13,tvOS 13,watchOS 6,*)公共类LocationProxy:NSObject {私人懒惰的var管理器= CLLocationManag ..
发布时间:2021-04-23 19:15:58 移动开发

如何从ViewModel对象填充选择器,如何设置第一个元素的初始状态以及如何处理选择器项目的选择

我有一个视图类,在选择器中显示了来自ViewModel类的项目列表.该选择器的初始状态是viewModel类的对象数组中的第一个元素. 从选择器中选择项目时,我想在该视图中执行不同的操作-1.单击按钮时,将对象信息发送到不同的屏幕.2.显示有关从选择器中选择的对象的信息. 导入SwiftUI进口联合收割机struct SetConfiguration:查看{@ObservedObject ..
发布时间:2021-04-23 19:15:52 其他开发

使用Flatmap和多个订户时,将多次调用的Future块合并

我已经在我的应用程序中成功使用 BrightFutures ,主要用于异步网络请求.我决定现在该看看是否可以迁移到合并.但是,我发现的是,当我使用未来代码块执行两次.以下是一些示例代码,这些代码将直接在操场上运行: import合并进口基金会扩展发布商{func showActivityIndi​​catorWhileWaiting(message:String)->AnyCancellabl ..
发布时间:2021-04-23 19:15:49 移动开发

切换选项卡后,UI随ObservableObject更改

我有一个 ObservableObject ,当服务器发送新数据时,我将使用它来更新我的UI(一个包含自定义结构数组的类). 由于某种原因,在发送数据时,将调用 ContentView 的 body ,但数据不会更改.我什至添加了 print 语句来检查数组包含的数据是否正确. 当我尝试切换到 TabView 上的另一个选项卡,然后再切换回主视图时,UI 确实得到更新.有人知道为什么我 ..
发布时间:2021-04-23 19:15:46 移动开发

我如何才能从一个API调用的结果中分支出多个API调用,并在完成Combine之后将它们收集起来?

因此,我有此API调用序列,在这里我获取了一个员工详细信息,然后获取了与该员工相关联的公司和项目详细信息.两次提取均完成后,我将两者合并并发布了一个fetchCompleted事件.我在下面隔离了相关代码. func getUserDetails()->AnyPublisherfunc getCompanyDetails(user:UserDetails)-> ..
发布时间:2021-04-23 19:15:42 移动开发

如果首次解码失败,则使用Combine和Swift解码另一个响应

我有以下模型: struct响应:可解码{让消息:字符串}struct ErrorResponse:可解码{让errorMessage:字符串}枚举APIError:错误{案例网络(代码:整数,描述:字符串)大小写解码(描述:字符串)大小写api(描述:字符串)} 我正在尝试使用以下流程获取网址并解析JSON响应: func fetch(URL:URL)->AnyPublisher ..
发布时间:2021-04-23 19:15:37 移动开发

错误后如何继续URLSession dataTaskPublisher或其他Publisher?

我有一个需要检查服务器状态的应用程序: 每30秒 每当应用进入前台时 我这样做是通过合并两个发布者,然后调用合并的发布者的输出 flatMap 来触发API请求. 我有一个发出API请求并返回结果发布者的函数,还包括检查响应并根据其内容引发错误的逻辑. 似乎一旦抛出 StatusError.statusUnavailable 错误, statusSubject 就会停止获 ..
发布时间:2021-04-23 19:15:28 移动开发

.tryCatch中的Swift-Combine-同步API执行

我正在尝试解决我想捕获该错误的401错误情况,请检查错误是否为401,以及是否为- 刷新oAuth 再次执行相同的API. 当前,我正在执行以下操作- 返回urlSession.dataTaskPublisher(用于:请求).tryMap(checkForAPIError).tryCatch {(错误)->AnyPublisher ..
发布时间:2021-04-23 19:15:25 移动开发

发布值上的SwiftUI toggle()函数停止使用Swift 5.2触发didSet

我刚刚将Xcode从11.3更新为11.4,用SwiftUI编写的项目的行为开始有所不同.我曾经为布尔值调用 toggle()函数,它曾经触发过 didSet 属性观察器,但是,它不再起作用了. 假设我们有一个名为 isSettingOn 的 State 属性.我曾经这样称呼过: isSettingOn.toggle() 正在触发该属性的 didSet 观察者.现在,只有当我打电 ..
发布时间:2021-04-23 19:15:22 移动开发

合并管道不接收值

在下面的代码中,它是更为复杂的管道的简化版本,其中“完成处理"从来没有要求2. 那是为什么? 我怀疑这是由于需求引起的问题,但我无法找出原因. 请注意,如果我删除 combineLatest()或 compactMap(),则正确处理了值2(但是我需要这些 combineLatest 和 compactMap 的正确性,在我的真实示例中,它们涉及更多). var cancel ..
发布时间:2021-04-23 19:15:20 移动开发

如何解决SwiftUI中多个在2 TextField上发布的死锁?

我的视图模型中有两个发布状态,一个用于 source ,另一个用于 destination 基于解决方案此处,以检测文本字段上的实时更改.我已经实现了 TextField(“",文本:$ viewModel.source)TextField(“",文本:$ viewModel.destination) 问题,这是每当用户输入一些值时我都需要更新这两个字段.例如-如果用户在 sourc ..
发布时间:2021-04-23 19:15:17 移动开发

在不相关的ViewModel中从我的身份验证类订阅用户变量-Swift/Combine

我正在尝试根据我的AuthenticationState类(使用Firebase Auth)中登录的用户实例化用户配置文件.该用户个人资料是我的UserProfileViewModel的一部分,该用户个人资料应该会提供一个视图来编辑用户的个人资料. 但是,当实例化UserProfileViewModel时,loginInUser似乎仍然显示为nil,并且我不确定是否有办法使用这样的另一个类的 ..
发布时间:2021-04-23 19:15:14 移动开发