问题标签 [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 投票
1 回答
1520 浏览

swift - 在 Swift Combine 中,“根”对象总是一个 Subject 吗?

在 Apple 的 WWDC 视频中Swift Combine,它们总是NSNotificationCenter用作消息的发布者。但是,aPublisher似乎没有任何实际按需发送消息的能力。该功能似乎在Subject.

我是否正确假设Subject必须是任何链的根对象Publishers?Apple 提供了两个内置主题:CurrentValueSubjectPassthroughSubject.

Subject但我假设我可以使用适当的协议编写自己的?

0 投票
1 回答
7356 浏览

swift - What is the correct syntax for using Publishers.debounce() in Swift Combine?

In Apple's 2019 WWDC video Swift Combine in Practice, they demonstrate using a debounce publisher to slow down the rate of messages.

However, anytime I attempt to use it in a similar fashion, I get the following error:

Cannot invoke 'debounce' with an argument list of type '(for: Double, scheduler: RunLoop)'

The debounce() signature is:

SchedulerTimeType.Stride appears to be initializable with a numeric but it's not working for me or my inexperience with Swift Generics is on display.

What is the correct way to call this?

Edit

Duplicate of this question...

Searching for generic words like "Combine" is, for now, rather challenging...

macOS 10.15, Xcode 11

0 投票
2 回答
2049 浏览

swiftui - PassthroughSubject 中的 Never 是什么?

对于一个SwiftUI符合. BindableObject_didChangePassthroughSubject

例如,如果您有一个名为 的类TestObjectdidChange可能等于PassthroughSubject<TestObject, Never>()。我知道第一种类型是PassthroughSubject传递的数据类型,但是什么是Never?它的目的是什么,是否存在第二种类型不是的情况Never

0 投票
1 回答
805 浏览

swift - 谁能解释一下 Swift Combine 的 Subject.eraseToAnySubject() 方法以及应该在哪里使用它?

我可以看到Subject.eraseToAnySubject()返回具体Subject类型AnySubject。我假设这是使用类型橡皮擦模式。

但是,苹果文档几乎没有提供任何细节:https ://developer.apple.com/documentation/combine/passthroughsubject/3241547-erasetoanysubject

谁能解释它是如何工作的以及应该在哪里使用它?

另外,是否可以使用some关键字来避免使用AnySubject

0 投票
2 回答
2876 浏览

swiftui - SwiftUI:动画更改依赖于@ObjectBinding

SwiftUI 具有使用 的隐式动画.animate()和使用.withAnimation(). 但是,我不知道如何为图像更改设置动画:

如果(a )中没有数据,则 this 的参数传递 (占位符) ,ImageuiImage在异步加载后将其替换为正确的参数:old-logoimageLoaderBindableObject

我怎样才能为这种变化设置动画,data.count停止存在的那一刻0,我们有了图像?说我想要一个淡出动画..

0 投票
1 回答
823 浏览

swift - 在 Combine 中,调度器的延迟和去抖动应该是什么?(仅限 Xcode 11 beta 1)

这个问题最好被删除,因为它只与过时的 Xcode 测试版有关。

[WWDC Video 721 Combine in Practice][1] 似乎表明 RunLoop.main 应该是在 Combine with delayor中使用的有效调度程序,debounce但我看到 Xcode 的编译错误声称 RunLoop 不符合调度程序。我做错了什么还是这只是 Xcode 的第一个测试版的问题。

我已经提出了 FB6160439。

[1]:https ://developer.apple.com/videos/play/wwdc2019/721/ (幻灯片 79、80、211)。

0 投票
2 回答
2703 浏览

ios - 如何在组合中安排异步调用的同步序列?

我想在我的应用程序中处理一系列网络调用。每个调用都是异步的,flatMap()看起来像是正确的调用。但是,flatMap同时处理所有参数,我需要顺序调用——下一个网络调用只有在前一个网络调用完成后才开始。我查找了 RxSwift答案,但它需要concatMapCombine 没有的运算符。这是我正在尝试做的事情的粗略轮廓,但同时flatMap触发myCalls

0 投票
1 回答
1174 浏览

ios - 使用`.receive(on:DispatchQueue.main)`时未接收输入

我正在尝试更改为下游的主线程,但是在使用或.receive(on: DispatchQueue.main)时我没有收到输入。如果我不更改线程,我会收到正确的输入。.subscribe(:).sink(receiveValue:)

出版商

订户

订阅

0 投票
4 回答
5255 浏览

swift - Swift 属性包装器可以引用其包装的属性所有者吗?

从 Swift 的属性包装器中,您是否可以参考拥有被包装属性的类的实例或被击中?usingself显然不起作用,super.

我试图传递self给属性包装器init(),但这也不起作用,因为self在评估时尚Configuration未定义on 。@propertywrapper

我的用例是用于管理大量设置或配置的类。如果任何属性发生变化,我只想通知相关方发生了一些变化。他们并不真的需要知道哪个值,所以对每个属性使用类似KVO或 a的东西并不是真正必要的。Publisher

属性包装器看起来很理想,但我不知道如何传递对包装器可以回调的拥有实例的某种引用。

参考:

SE-0258

0 投票
1 回答
3072 浏览

swift - 避免在 Swift Combine 框架中强制展开

在 WWDC 2019 视频 721 中,主要示例的基础是这样开始的:

这似乎是不可取的。如果没有userInfo,或者它不包含"data"键,或者它不是数据,会发生什么?我们将强制展开nil并崩溃。这里的最佳做法是什么?