问题标签 [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.
swift - 在 ReactiveSwift 中同步组合属性
我正在考虑使用我自己的自定义信号框架将项目转换为使用 ReactiveSwift,但有一个基本问题我从未弄清楚如何在 ReactiveSwift 中解决:
作为一个简化的示例,假设您有两个可变属性:
然后,我们派生一个结合两者的属性来实现我们的逻辑:
稍后,我们收到一些信息,导致我们同时更新两者的a
值b
:
现在的问题是它c
会通知它的听众它有这些值3 -> 5 -> 7
。5 完全是虚假的,并不代表有效状态,因为我们从不想要一个a
等于 3 和b
等于 2 的状态。
有没有解决的办法?一种抑制更新的方法,Property
同时将其所有依赖项更新为新状态,并且仅在完成后才允许更新?
swift - 反应式 Cocoa MVVM 初始化
所以我对反应式 Swift/Cocoa 和 MVVM 的概念相当陌生。我想知道如果我在错误的地方初始化了 ViewModel。
模型
视图模型
带有插座的 UserSlide 视图
引用 ViewModel 并将其绑定到 UserSlide 视图中的 UILabel 的视图控制器
我不断收到的错误是“在我在 createSlides() 函数的 ViewController 中引用的 UserViewModel 上,在隐式展开可选值时意外发现 nil”。
我基本上是在尝试创建一个具有两个视图的 PageController,其中一个具有我需要绑定的 UITextField 以便每当用户更改值并滑动到第二个视图时,第二个视图上显示的数据最多日期。
我试过了:
1) 将 ViewModel 设置为 optional(?) 但不幸的是,它必须被解包。
2) 在 UserSlide 视图中初始化 ViewModel 而不是 ViewController。ViewModel 仍然为零。
3) 在 ViewController 中初始化 UILabel 并以这种方式绑定 ViewModel。同样的结果,ViewModel 为 nil。
任何建议将不胜感激!:)
swift - 使用 Reactive Swift 将视图模型与视图绑定
我最近一直在关注响应式 swift 以实现它的功能。这是当前可用的游乐场信息。
我面临的问题是如何将视图模型与 UI 元素连接以监视它们的值。
我尝试的是用两个文本字段和一个按钮来模拟一个简单的登录屏幕。我的目标是从这两个文本字段中监视 i/p,并且按钮状态将基于此更改。
这是视图模型
这是视图控制器
当我尝试按照操场的代码 {code} viewModel.email <~ formView.emailField.reactive .continuousTextValues.skipNil(){code} 进入我的示例代码时,它给了我一个错误,指出“UITextField?”类型的值 没有成员“反应”。我添加了可用的辅助函数,emailField 没有响应式类别,反之亦然。
swift - 为什么没有调用observeValues 块?
尝试在我的项目中使用 ReativeSwift,但有些东西表现不佳,我检查了很多次,无法找出问题所在。一切都是正确的,只是没有调用。
ios - 在文本字段中输入验证电话号码的启用/禁用按钮
作为一个整体,我对 ReactiveSwift 和 MVVM 非常陌生。我正在尝试验证输入到文本字段中的电话号码并根据验证结果启用/禁用按钮。
在应用程序中,有一个文本字段和一个UIButton
名为提交的按钮。对于电话号码验证,我使用了一个名为[PhoneNumberKit][1]
. 它还提供了一个UITextField
格式化用户输入的子类。
我将一个看起来像这样的解决方案混合在一起。
这可以完成工作,但不是很优雅。此外,用户输入和 UI 更改之间存在显着滞后。
另一件事是我上面的解决方案不符合 MVVM。我又试了一次。
当我将validatePhoneNumber
函数的结果分配给isPhoneNumberValid
属性时,初始化程序中出现以下错误。
无法将“SignalProducer”类型的值分配给“MutableProperty”类型
我不知道如何将电话号码验证部分与提交按钮的isEnabled
属性和点击操作正确连接。
swift - 结合 2 个 PublishSubject 并使用 Observable.combineLatest 发射
我的服务中有 2 个单独的数据集合。
Featured
和Standard
内容。
我有 2 个 api 调用来返回这些项目。它们可以单独使用,但是当我想获取两组数据,根据条件提供一些丰富然后将它们返回给消费者时,我也有用例。
我希望我能做这样的事情:
在我的应用程序的其他地方,我希望我能做类似的事情
然后无论何时调用contentSvc.fetchFeaturedContent
or ,上面的订阅者都会获取新数据。contentSvc.fetchStandardContent
contentSvc.content
相反content
,它似乎没有发出任何值。
ios - 如何创建日期计划?
我正在尝试创建一个日期调度程序来观察某些事件。但它不起作用。我已经看过了
协议日期调度器
并且据说在某些方法协议 DateScheduler中将在currentDate执行操作。我在 10 秒后尝试这样做。下面是我的自定义计划的示例。
}
然后我创建绑定来观察事件
我正在做AppDelegate。ObserverSchedular和signalSchedular是全局属性。请向我解释如何调用所有方法DateScheduler。
ios - ReactiveSwift 中 flatmap 策略之间的差异
从响应式 swift 的文档中,我可以了解Flattening
. 可以在此处找到其中的示例。在该部分中,Flattening event streams
所有内容都已完美讨论。
我很困惑flatmap
。根据文档,它Maps each event from self to a new producer, then flattens the resulting producers according to strategy - concat/merge/latest
. 所以,应该和flattening
我猜的差不多。
但是,我无法产生类似的行为。例如,考虑以下代码段。如果我改变扁平化策略concat/merge/latest
,输出不会改变。
输出:
任何人都可以清除这个吗?
此外,是否可以提供任何示例来flatmap
区分 的效果merge, concat, latest
?