问题标签 [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,我使用了以下代码:
意思是:
self.alertMessageProperty.value
是类型String?
- in
.on(failed:)
,failed
是类型((Error) -> Void)?
所以$0
是类型 Error 并且$0.localizedDescription
是类型String
。 - 在一个简单的 Playground 中,将 a 分配
String
给一个String?
变量可以正常工作,正如预期的那样。
它无法编译,我收到此错误:
我认为String
可以转换为String?
. 这里发生了什么?
版本:Swift 3.2 - ReactiveSwift 2.0.1
ios - 响应式 swift 中的新版本控制 NSNotificationCenter
我想知道我在swift 3.0中提到的NSNotificationCenter下面的代码行可以转换为RxSwif/RxCocoa
swift - 如何使用 ReactiveCocoa 观察 Swift 中的属性变化
我正在用新的 ReactiveCocoa + ReactiveSwift 编写 Swift。我正在尝试使用新的 ReactiveCocoa 框架执行以下操作(在 ReactiveCocoa 2.5 中):
经过一些研究,我仍然无法弄清楚如何做到这一点。请帮忙!非常感谢!
ios - 为什么将 ReactiveSwift MutableProperty 包装在 Property 中会导致泄漏?
这是一个使用 ReactiveSwift 的 Swift 类,将 a 包装MutableProperty
在 a 中,并在aProperty
中添加对它的订阅:Property
ScopedDisposable
如果我给另一个类一个 type 的属性Leaker?
,然后使用 设置它self.leaker = Leaker()
,这会造成泄漏。通过“创建泄漏”,我的意思是它触发了泄漏工具,显示了一个标记为 的泄漏对象Malloc 32 Bytes
,以及一个包含Leaker.init()
调用的堆栈跟踪Leaker.wrapperProperty.getter
。
为什么会泄漏?我发现很难准确理解是什么导致这里分配的内存永远不会被释放。
其他一些可能有用的事实:
mutableProperty
如果我直接订阅,这不会泄漏mutableProperty
如果我包装在惰性属性而不是计算属性中,这不会泄漏- 如果我创建一个临时的,这不会泄漏
Leaker
,例如let _ = Leaker()
swift - ReactiveSwift:如何订阅 SignalProducer?
我正在尝试学习 ReactiveSwift 和 ReactiveCocoa。我可以很好地使用Signal
,Property
但我遇到了麻烦SignalProducer
。
据我了解,它SignalProducer
非常适合网络请求之类的事情。我设置了我的 API 层来创建并返回一个信号提供者,调用者可以启动它。
但是我应该怎么听结果呢?
我已经尝试过这样的事情,但我得到了一个错误,所以我必须做/考虑这个错误。
这是我得到的错误:
对成员“startWithValues”的模糊引用
- 找到了这个候选人 (ReactiveSwift.SignalProducer< Value, NoError >)
- 找到了这个候选人(ReactiveSwift.SignalProducer< Never, NoError >)
编辑
我尝试更明确地帮助编译器识别正确的方法,就像这样。但错误仍然存在。
编辑 2
在 GitHub 支持页面获得帮助并考虑此处提供的答案后,这就是我最终得到的结果。
与我之前尝试的一个关键区别是调用者不会手动启动返回的SignalProducer
. 相反,通过在内部/响应另一个信号创建它,它隐式地在链内部开始。
我之前(错误地)假设有必要提取并明确订阅Signal
“SignalProducer
生产”的内容。
相反,我现在将SignalProducer
s 简单地视为响应刺激而启动的延迟工作。我可以手动订阅,SignalProvider
或者我可以让另一个Signal
提供该刺激。(后者在我下面更新的示例中使用。它看起来相当干净,并且比手动启动它更具 FRP 风格,这是我从我的命令式思维方式中继承下来的。)
ios - 为什么我不能在这个启用 ReactiveSwift 的网络工作流中观察事件?
我正在训练自己使用ReactiveSwift进行联网,一个很好的用例似乎是从Google Places API for iOS获取位置的照片。
流程如下:
GMSPlacePhotoMetadata
从谷歌地点 ID获取列表- 对于每个元数据,获取一张图片
- 将所有图片连接为一个数组
我以我能想到的最好的 ReactiveSwift 方式编写了执行此工作流程的代码(参见下面的代码),但是当我调用我的服务时,尽管对 Google Places API 进行了所有 API 调用,但我并没有进入观察部分。我觉得我在框架中遗漏了一些非常基本的东西,并且在此过程中我失去了一些观察者,但我无法指出问题所在。任何帮助都将受到欢迎。
我的服务代码
我的观察代码
我的日志
ios - 设置间隔时,QueueScheduler 未触发
此代码不打印任何内容:
但如果我不这样做,它interval:
会按预期打印一次。为什么这样?
ios - 在观察 `Action.isExecuting` 时使用`UIRefreshControl` 时由于`Lock.UnfairLock.lock()` 而崩溃
我正在使用 aUITableView
来显示分页列表,并且我正在使用 aUIRefreshControl
来指示正在发生网络请求。
但是,由于某种原因self.refreshControl.beginRefreshing()
/self.refreshControl.endRefreshing()
导致os_unfair_lock_lock(_lock)
. 如果我注释掉这两行,代码就可以正常工作。
以下代码可用于重现该问题:
ios - 使用 ScopedDisposable 和 take(during: ...) 有什么区别?
我有视图控制器,它有一些信号,我想观察来自该信号的值viewDidLoad()
。当 View Controller 死机时,我需要处理该信号:
是否有必要viewModel.alertSignal.take(during: self.reactive.lifetime).observeValues ...
像我在代码中那样将结果添加到 ScopedDisposable 对象:composite += ...
?还是打电话take(during: self.reactive.lifetime)
就够了?
ios - CocoaPods 安装 ReactiveSwift/ReactiveCocoa 不正确
我正在尝试在项目中安装 ReactiveSwift/ReactiveCocoa 并且没有运气。起初,我对 Xcode 报告的关于我尝试使用 ReactiveCocoa 代码的奇怪错误感到困惑:
然而,进一步检查表明 Xcode 正在构建 React、ReactiveSwift 和 ReactiveCocoa 框架,但未能正确集成它们。
我的问题是:如何解决问题,以便 Xcode 将所有内容正确组合在一起?我在我的 Podfile 中找不到任何明显错误的地方。
其他可能相关的信息:在 macOS High Sierra 10.13.2 上运行的 Xcode 版本 9.2 (9C40b)。
知道出了什么问题吗?提前感谢任何人都可以提供的任何帮助。