问题标签 [combine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11763 浏览

swift - SwiftUI:无法推断通用参数“主题”

当我从 API 获取远程数据时,我使用 SwiftUI构建了一个LoadingView用于在我的应用程序中显示一些加载内容的工具。我使用的是 Xcode 11.0 beta 5。

这是LoadingView

这是我的数据存储。它被声明为ObservableObject并具有多个@Published属性。它还从 API 进行一些远程获取:

最后,这是我想展示的视图,LoadingView其中包含其中的内容ContentView。当然,我是@EnvironmentObject在显示此视图之前设置的。

问题是我想绑定self.$charStore.isLoadingLoadingView. 在这一行中,我收到以下错误:

无法推断通用参数“主题”

我尝试了几种方法,但这些方法都不起作用。顺便说一句:如果我在其中使用一个@State属性,ContentView就可以像这样正常工作:

我错过了什么吗?如果您需要更多信息,请告诉我,如果需要,我可以提供更多内容。

谢谢您的帮助!

0 投票
2 回答
772 浏览

swift - 如何在 Swift 中的 Combine 中的订阅者中引用 self

刚刚掌握了 Combine 并遇到了一个问题,当它从 a 接收到值时,我需要在我的类中调用一个方法Publisher,在这种情况下是 a Notificationfrom NotificationCenter...

这是订阅...

编译器告诉我的是Use of unresolved identifier 'self'. 时间不早了,有点累了,有大神知道吗?Xcode 11 beta 5 on Catalina beta 5 btw ...

完整文件:

}

0 投票
1 回答
3491 浏览

ios - 如何使用 dataTaskPublisher 链接多个 API 调用?

我想从 REST API 获取数据,为了做到这一点,我需要首先获取一个 ID 数组 - 第一次调用。之后,我需要使用每个 ID 进行 API 调用。我不想使用completionHandlers,而是使用Combine。我从 dataTaskPublishers 开始,但我不确定如何将它们链接起来才能正常工作

到目前为止,这是我的代码:

我不确定如何连接它们以获得可分配给我的状态变量的东西 - MyData 数组。

0 投票
3 回答
7236 浏览

swift - 如何使用 ObservableObject 更新 UIViewRepresentable

我正在尝试学习与 SwiftUI 结合,我正在努力如何使用ObservableObject(以前)更新我的视图(来自 UIKit BindableObject)。问题是,显然,一旦对象发送通知它已更改,方法updateUIView将不会触发。@Published

如何以locationCoordinates这种方式将该数组绑定到视图,实际上每次刷新时都会添加一个新点?

0 投票
1 回答
172 浏览

ios - 找不到合并 @Published - Xcode11 Beta 5(11M382q)

我正在尝试使用以下内容运行一个简单的项目:

@Published var currentPlacemark: CLPlacemark? = nil

  • XCode11 Beta5(11M382q)
  • iOS13(17A5556d)

收到以下错误: dyld: Symbol not found: _$s7Combine9PublishedV9PublisherCyx_GAadAM

其他人遇到过这个吗?

代码示例:

0 投票
1 回答
273 浏览

swift - 使用组合的运行时错误:dyld:找不到符号:_$s7Combine9PublishedV9PublisherCyx_GAadAMc

我正在使用 Xcode 11 Beta 5 (11M382q),以及带有 iOS 13 beta 6 的 iphone x,并且在尝试使用 Combine 时出现此运行时错误:

dyld:找不到符号:_$s7Combine9PublishedV9PublisherCyx_GAadAMc

我有一个核心课程ObservableObject

和一个简单的看法

我的代码有什么问题?我只想要一个使用反应式编程来禁用或启用按钮的 MVVM 架构。

0 投票
8 回答
5797 浏览

protocols - 如何使用@Published 属性包装器定义协议以包含属性

当按照当前的 SwiftUI 语法使用@Published 属性包装器时,似乎很难定义一个包含@Published 属性的协议,或者我肯定需要帮助:)

当我在 View 和它的 ViewModel 之间实现依赖注入时,我需要定义一个 ViewModelProtocol 以便注入模拟数据以轻松预览。

这是我第一次尝试,

我得到“在协议中声明的属性‘人’不能有包装器”。

然后我尝试了这个,

显然没有用,因为 '$' 是保留的。

我希望有一种方法可以在 View 和它的 ViewModel 之间放置一个协议,并利用优雅的 @Published 语法。非常感谢。

0 投票
1 回答
532 浏览

swift - Swift中zip、reduce和combination的解释

有人可以为我分解这个代码示例吗?zip并且reduce有一定的意义,但是发生的事情combine:让我感到困惑。任何帮助将不胜感激。

0 投票
3 回答
9631 浏览

swift - 将 Just 与 flatMap 一起使用会产生失败不匹配。结合

我有这样的代码

我收到编译错误:

实例方法 flatMap(maxPublishers:_:) 要求 Just.Failure(又名 Never)和 Error 类型是等价的

很清楚,因为Justhas NeverasFailure.flatMaprequires Erroras Failure,所以Never!=Error

我看到两种方法:

  • 使用正确的Publisher,而不是Just,但我没有找到合适的人选。

  • 使用像.mapError,之类的运算符.mapError { $0 as Error },但我不确定这是个好主意。

任何想法如何处理它?

更新:

使用起来更有意义

或者

0 投票
1 回答
195 浏览

swiftui - 使用 SwiftUI 时异步填充/预填充多个用户可变的“@State”值?

我有一些TextField(s)“.text”值应该由“<strong>init()”(可以移动)中调用的方法填充,该方法使用struct来自网络的数据异步调用完成处理程序。

问题是......同时用户也可以开始手动输入它们,并且完成回调不应该覆盖手动编辑的值

我不确定如何:

  1. @State String仅当用户尚未修改变量的值以替换现有值时才更新它们的值......同时让最终用户可以更改它们。
  2. @State一次更新来自同一请求的N 个值。一个请求用于拉入所有数据,因此映射到单个值同时使其如上所述是可变的目前是一个令人头疼的问题。

这似乎是 Combine 的工作,只是还不确定从哪里开始。