问题标签 [reactive-swift]
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.
ios - 在 ReactiveSwift 中,信号观察者仅在从主线程显式调用时发送信号
我使用 ReactiveSwift 有一段时间了,但突然遇到了一个奇怪的 bug 什么的。
我正在使用 MVVM 架构,并有一个简单的视图控制器和一个视图模型。VM 有一个类型为 的属性Signal<Void, NoError>
。在虚拟机的初始化中,我向它的观察者发送一个空值。在视图控制器上viewDidLoad
,我监听该信号并打印一些文本。这是视图模型:
这是视图控制器:
在这种情况下,print
不会调用该语句。但是,当我通过显式定义所有工作的主线程向观察者发送值时DispatchQueue
:
我不知道为什么会这样。在主线程上调用视图模型本身的初始化,那么什么可能导致这种行为?提前致谢。
rx-swift - 反应式 Swift 使用来自 API 的实时数据 - 需要基本示例
我是 RxSwift 的新手,我正在寻找一个基本示例,说明如何在来自后端的控制台实时数据流中进行打印。我有一个后端每 1 秒传输一些虚拟数据,我可以通过 curl 请求看到它,我希望能够在控制台中自动观察和订阅并打印出来,请帮忙!
swift - 如何转物业进入 SignalProducer?
给定
我如何numberOfSneezes.producer
变成这种类型的制作人
?
我知道numberOfSneezes.producer
不会发送任何错误,但sneezeNumberProducer
无论如何我都需要分配它。
swift - 协议中的 Swift 元组声明
我的代码中有一个元组变量,它来自 ReactiveSwift:
如何在协议中声明该变量元组?
类似这样(不起作用):
出现语法错误:“Getter/setter can only be defined for a single variable”
谢谢!
ios - 将集合类型绑定到 ViewModel 属性
我有一个项目数组(每个项目对应一个单元格数据),我想创建一个单元格 ViewModel 数组。
当我尝试将项目映射到 MutablePropery 时,我得到Binary operator '<~' cannot be applied to operands of type 'MutableProperty<[CellViewModel]>' and '[CellViewModel]'
我应该如何更改以下代码以获得反应流?
我的意图是创建一个如下所示的结构:来自MVVM + ReactiveCocoa。我共享的代码是我的 ViewController 的 ViewModel,我尝试在启动父 ViewModel 后立即创建单元格 ViewModel。
ios - ReactiveSwift:使用 MutableProperty 观察托管对象的变化
我的项目具有CoreData
具有 1 个根上下文和多个子上下文的数据库。我有一个ViewModel
包含一个项目(NSManagedObject
)。当我更改项目中的某些内容时,会在根上下文中进行持久化,然后自动合并到所有子上下文中。
我想NSFetchedResultsController
用ReactiveSwift
Signals/Properties 替换,以观察项目对象的变化。
视图模型:
视图控制器:
在我在其他地方更改项目名称后,更改将传播到ViewModel
子上下文(NSFetchedResultsController
得到通知),但信号永远不会推送新item
事件。
也许是因为NSManagedObject
参考永远不会改变?我知道我可以用 观察对象中特定属性的变化producer(forKeyPath: "propertyKeyPath" )
,但我不想只观察项目的一个特定属性,我想观察所有变化。
有没有办法观察所有对象属性的任何变化?
reactive-cocoa - 将 ViewModelOwners 与 ReactiveCocoa 一起使用时如何处理 DisposeBag
ViewModelOwners记录了如何使用 ReactiveCocoaCompositeDisposable
这个例子甚至是用 ReactiveCocoa 实现的。
但是,我不明白disposeBag
实际是如何处理的,因为CompositeDisposable
不会自动处理deinit
我正在尝试该示例并向一次性用品添加一条日志消息:
释放控制器时永远不会打印该消息。
我认为您需要手动处理袋子deinit
,但关联的对象没有暴露,所以我无法disposeBag
进入deinit
。
我想出的最好的方法是使用lifetime
ReactiveCocoa,如下所示:
但这似乎有问题,例如,如果这是 a ReusableViewModelOwner
,那么除了最后一个 disposeBags 之外的所有内容都已被处理,但我仍然保留它们......
所以基本上,我的问题是:你应该如何使用ViewModelOwners
with ReactiveCocoa.CompositeDisposable
?
swift - 在 reactswift 中传递的观察事件
我已经多次阅读文档并需要澄清......
鉴于以下片段:
Ifsignal
被触发并通知其观察者value event
:
1)y
之前会通知观察者x
(假设因为它在队列中更早地被第一次观察到)
2)由于y
在处理完值后会完成,所以self
应该在之后释放
问题:
哪些事件将x
收到(按顺序):
价值和完成度?是否保证在处理价值事件时 self 仍然活着?
只完成?我怀疑是这种情况,但如果是这样,请参考一些文档。因为完成事件不会立即传播。
会为两者使用不同Scheduler
的 sx
并且y
会对结果产生影响吗?
最后,我要介绍race
吗?我对此表示怀疑,因为除非开发人员明确说明,否则 reactiveSwift 不会引入并发性。