问题标签 [racsignal]
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 - 如何从 rac_sequence、reactive cocoa、ios 获取项目
我正在解析服务器响应标头中所需的链接。我的标题看起来像
Access-Control-Allow-Origin → * Age → 0 Cache-Control → private,must-revalidate
连接→保持活动
内容编码 → gzip 内容类型 → 应用程序/json
日期 → 2015 年 6 月 13 日星期六 15:58:56 GMT ETag → W/"cb38bb07f1635fd6aba5969985bf0607"
链接 → http://thisIsCurrentlink&limit=24 ; rel="next", http://thisIsLastlink&limit=24 ; rel="last", http://thisIsFirstlink&limit=24;相对=“第一”,<>;相对=“上一个”
服务器 → nginx
变化 → 接受编码
X-总计数 → 131
传输编码→分块
通过这样做,我可以获得links
包含所有链接的数组
然后我正在执行以下操作以获取我需要的所有链接
现在sequence
包含所有链接
我的问题是如何从上面访问每个项目sequence
ios - 如何等到任务完成再返回一个信号,reactive cocoa
让我解释一下我想要做什么。
endPoint
我通过信号包装 endPoint url- 用于提取url
map
并进行服务调用 (service([NSURL URLWithString: endPoint])
) - 用于
map
从步骤 2 中提取信息并创建info
数据 updateVideoStateWith
使用回调- 返回一个包含的信号
result
最终,当我订阅finalPackage
信号时,返回值是初始化值9
。我意识到updateVideoStateWith
回调将需要时间来返回结果。
我的问题是如何强制return [RACSignal return:result]
等到数据从回调块更新。我确实尝试过 takeUntilBlock 但不知道如何使用它。我也考虑使用 switchToLatest 但仍然没有运气。
objective-c - 我如何使用 ReactiveCocoa/RACSignal 来“RACify”一个 UIApplicationDelegate 生命周期事件,比如 didFinishLaunchingWithOptions?
我想知道如何使用该ReactiveCocoa
库来RAC
-ifyUIApplicationDelegate
生命周期事件。
由于最重要的是- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
,这对我来说似乎是一个合乎逻辑的起点。
如果我理解正确,基本思想是创建一个RACSignal
封装事件(应用程序使用这些选项完成启动),通过管道串行发送或并行发送到多个“应用程序启动处理程序”,然后合并所有它们的输出——如果是串行的,那么只有在每个返回时才继续YES
,如果是并行的,if (handler1 == YES && handler2 == YES ...)
——然后return
是实际的组合响应UIApplicationDelegate
。
但是,我对如何实现这一点的确切细节很模糊——这从我的提问中可能很明显。
任何示例,无论是真实代码还是伪代码,都将不胜感激。它对我(可能还有其他人)有双重目的:1)所述的一个,以及 2)提供一个如何RAC
-ify 非 UI 驱动事件的示例(嗯,这甚至不完全正确,但我认为你明白我的意思)。
ios - ReactiveCocoa 嵌套映射
如何避免信号序列中的嵌套映射?这是处理这个问题的更好方法吗?
ios - 重置计时器信号的最佳方法是什么?
我需要每 5 分钟从服务器获取数据。如果我确实下拉刷新,还需要从服务器获取数据,并重置计时器。
下面的代码是现在的解决方案,看起来工作正常。只是想知道如何简化代码?可能有更好的方法ReactiveCocoa
吗?
objective-c - 单击单元格外部的按钮时如何将 RACSignal 发送到单元格的 viewMode
我在导航栏上有一个按钮,名为“编辑”。还有UICollectionView
一些内容的节目。单击“编辑”按钮将变为“编辑模式”,并且按钮的标题变为“完成”,UICollectionView
单元格也应更新。单击“完成”按钮将执行相反的操作。
我已经编写了下面的代码:现在单击“编辑”|“完成”按钮后,孔集合视图将通过刷新进行更新,因为单元格中的图像来自服务,我没有更新它们。我更喜欢通过 Cell 的信号更新图标。但是如何重构代码?
1.viewController的 -(void)viewDidLoad
2.1.viewController的ViewModel的 property
2.2.viewController的ViewModel的 -(id)init
3.viewController的 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
4.Cell的ViewModel的 -(void)setDataModel:(DataModel)data withIsEditModeSignal:(RACSignal*)isEditModeSignal
5.Cell.m的 -(void)setCellViewModel:(CellViewModel*)viewModel
ios - RACSignal 订阅问题
我MVVM
也在我的 iOS 中使用范例RACSignal
。到目前为止,事情进展顺利。但是,我在订阅信号时遇到了问题。在第一次订阅时一切正常。然而,进一步的订阅不会。
编码
在我的viewModel
我有一个RACSignal
这样的声明:
视图模型.h
视图模型.m
然后在 viewModel 中像这样初始化它designated initialiser
:
然后,当我实际使用中的信号时,viewModel
我会做这样的事情:在 viewModel 的各个地方需要的地方——通常在 web 服务块方法中
在viewController
我订阅这样的信号中:
我订阅了一次信号viewDidLoad
所以一切都在第一次viewDidLoad
通话
问题
当我离开viewController
并返回它时,它viewWillAppear
会被调用,并且会viewModel
触发各种触发信号的方法:
然而,viewController
不再接收信号。似乎它只适用于他第一次订阅。
有没有办法让信号在每次updateContent
调用/触发一个信号时继续工作?
reactive-cocoa - 我什么时候应该/必须将 ReactiveCocoa 对象声明/实例化为存储属性而不是局部变量?
(适用于ReactiveCocoa
4 或 3)
在我见过的大多数示例和案例中,将用户界面连接到数据中所涉及的ReactiveCocoa
对象至少在构造函数中调用的某个或类似方法中MutableProperty<TVal, TErr>
实例化。SignalProducer<TVal, TErr>
setupBindings
我经历过几种情况,当我将对象的声明从范围移动到存储属性时,我的非工作代码突然“正常工作”,反之亦然。例如,在伪代码中:
因此,似乎有一些基本问题。
给定一些ReactiveCocoa
对象...
- 我什么时候应该将它声明为属性(
let
或var
)与本地实例变量? - 我什么时候应该将它实例化为存储的、计算的或其他属性与实例的变体
- 什么时候应该是一个函数
return
?
ios - ReactiveCocoa `rac_textSignal` 映射完成事件
我是 Reactive Cocoa 的新手。
在将文本视图文本替换为修剪后的版本后,我需要在将空白添加到 a 时触发内容UITextView
。所以基本上我正在寻找某种完成事件。我想这是一件简单的事情,但我一定错过了一些重要的东西......这就是我所拥有的:
我尝试了几种subscribeCompleted
, then
,completed
块的组合,但没有一个被调用。
如何检测何时self.field.text
响应 更新其值whitespaceSignal
,然后才触发我的副作用?
ios - 重试 RACObserve 直到成功
我有 RACObserve 块,我想重试调用,直到它成功返回。所以它不会显示错误消息,但它会重试获取。感谢帮助!