问题标签 [reactive-cocoa]

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 回答
289 浏览

ios - Use observer to signal semaphore?

I use the following method to attempt to synchronously obtain an OAuth access token within 10 seconds, otherwise return nil. It works fine, however as an exercise I would like to convert my code to use a semaphore.

The Runloop version

Semaphore Version

The semaphore version of the code goes a little something like this:

Gotcha!!! GTMOAuth2 sometimes returns immediately

  • When GTMOAuth2 needs to hit the network it calls back via a delegate method. In this method I signal my semaphore.
  • Sometimes GTMOAuth2 is able to return immediately. The problem is the method returns void.

How can I signal my semaphore in the latter case? If I add an observer to the authentication.assessToken will it be fired?

0 投票
1 回答
4805 浏览

ios - 如何使用 CocoaPods 正确安装 ReactiveCocoa?

我很陌生ReactiveCocoaReactiveCocoa几天前我尝试通过CocoaPods. 这是我的podFile

使用后pod install我在这里有日志文件:

分析依赖关系

下载依赖项

使用 ReactiveCocoa (2.0)

生成 Pods 项目

整合客户项目

然后我打开myproject.xworkspace#import <ReactiveCocoa.h>开始使用该框架。 但问题是我无法让它工作

例如在我的代码中,我有这一行: objc RACSignal *usernameSignal = self._usernameTextField.rac_textSignal; 但是当我运行项目时,它显示了这个调试错误

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UITextField rac_textSignal]:无法识别的选择器发送到实例 0xb933a70”

我相信我在这里的框架安装可能会出错。任何人请帮帮我!

我正在使用XCode5 and iOS7.0

0 投票
1 回答
2639 浏览

reactive-cocoa - 用副作用反应委托方法的方法

只是试图围绕某些情况下的 ReactiveCocoa 方法。

我有一个段控制器换出子视图控制器的情况。我需要在这里完成几件事:

  1. 当移动到父控制器时,我必须更新 的contentInsettableView因为 iOS7 不使用自定义容器视图为我处理它
  2. 启动搜索时,我需要淡化导航栏,并更新contentInset动画
  3. 搜索结束时,我需要淡入navigationBar并重置contentInset动画

这是以命令式样式完成此操作的当前代码:

可以对其进行重构以提取一些插入的内容,但在本练习中保持平整。

将在下面发布我的“非常不知道我在做什么”的方法作为答案。

部分回答

好的,所以我试图将信息流提取到相关信号中。

基本上我需要知道:

  1. 我现在在搜索吗
  2. contentInset在这种情况下,我的(顶部)的当前值

所以我的方法是

  1. 为我当前是否正在搜索创建一个 RACSubject self.currentlySearchingSignal
  2. topmy 的值tableView.contentInset变成一个信号
  3. sendNext:@(YES)何时被调用(以及何时返回 YES currentlySearchingSignalsearchBarShouldBeginEditing
  4. sendNext:@(NO)何时被调用(以及何时返回 YES currentlySearchingSignalsearchBarShouldEndEditing
  5. ...

好吧,我被困住了。我知道我需要以某种方式组合/订阅这些,但试图以非状态方式考虑它。

  1. 当添加到父 VC 并且我contentInset.top的设置尚未正确时(topLayoutGuide),我需要在没有动画的情况下设置它。
  2. 搜索并且我contentInset.top的设置不正确(状态栏框架)时,我需要执行动画(然后在我的动画完成之前不要再次更新)
  3. 当不搜索并且我contentInset.top的设置不正确时(topLayoutGuide)我需要执行动画(并且在动画完成之前不会再次更新)

试图解决它

这是我的开始。试图解决#1,但它还没有工作。

0 投票
2 回答
1359 浏览

objective-c - 反应式 NSMutableDictionary?

如何订阅使用 ReactiveCocoa 从 NSMutableDictionary 添加和删除的对象?另外,我想在通知发生变化时广播通知。我的猜测是广播可以使用 RACMulticastConnection 完成,但我如何将它与字典更改联系起来?我第一次尝试在我的项目中使用 ReactiveCocoa 并坚持我想做的第一件事:(

0 投票
1 回答
1458 浏览

objective-c - “结合最新”与 ReactiveCocoa 和信号信号

在 ReactiveCocoa 中实现“组合最新”信号的最佳方法是什么?我有以下问题:

给定 N 个文本字段,订阅UIControlEditingEventChanged事件,并根据被调用的值创建一个新信号。每个订阅者订阅一次,然后将这些值相互结合使用。所以这就是我所拥有的:

rac_validationSignal我自己的类处理 UITextFields 的验证在哪里。信号正确通过,但一次只能通过一个。我需要一次所有订阅的值,以便获得所有已编辑字段的有效性。

编辑:

一种可能的解决方案涉及一个可变数组,我将新字段添加到该数组中并像往常一样发送组合信号。这看起来不错,还有其他想法吗?

谢谢!

0 投票
1 回答
481 浏览

core-data - 过滤 RACSequence 未按预期工作

我正在尝试使用 ReactiveCocoa 刷新获取的对象数组,并且我想过滤掉已删除的结果。我似乎不能让事情正常运行——我希望在 trackSequence 中filter每个都通过,但相反我看到了一个对象。NSManagedObject_PFBatchFaultingArray

谁能阐明我做错了什么?谢谢!

0 投票
1 回答
3151 浏览

objective-c - 如何将 RACSignal 重新绑定到 BOOL 变量?

我有一个以 Node 为基类的基于树的数据结构:

当父节点的分离变量等于 YES 时,子节点的相同属性应该变为 YES。此行为使用以下代码建模:

更改父级时如何重新绑定分离的属性?如果什么都不做,在这种情况下会发生崩溃:

我在这里找到了讨论,但我不知道如何为我的案例采用他们的解决方案。

0 投票
1 回答
2328 浏览

reactive-programming - catch: 和 subscribeError 之间的区别:

ReactiveCocoasubscribeError:中,方法与方法有什么区别catch:?为什么要返回信号 in catch:

0 投票
4 回答
5078 浏览

ios - 为什么 RACCommand 的块返回信号?

我一直在学习很多关于ReactiveCocoa的知识,但有一件事仍然让我感到困惑:为什么信号块RACCommand本身会返回一个信号?

我了解 的用例RACCommand、它的canExecute信号和信号块,以及它如何连接到 UI 元素。但是除了 之外,还有什么情况会返回[RACSignal empty]

0 投票
1 回答
1679 浏览

ios - 使用 Reactive cocoa 观察 UITouches?

我对反应性可可相当陌生,我试图在我正在尝试构建的游戏中加入 FRP 元素。从我的在线搜索来看,Reactive cocoa 的资源和文档似乎非常有限,并且大多数教程都使用相同的示例!

我想要做的是,拥有一个 RACSignal,它为视图上的当前触摸提供一个值流(为简单起见,假设没有多点触摸)。然后使用 subscribeNext 在 UITouch 对象发生变异时执行我的操作。我无法设置 RAC 信号本身!

目前我正在做以下事情(我不确定这是正确的方法!)

但是每次我 RACSignal 尝试初始化游戏崩溃时,我都会得到以下信息:

我究竟做错了什么?设置 RACSignal 的正确方法是什么?另外,我如何在不同的对象(可能是 MyView 模型)中使用 touchSignal 并使用 subscribe next 在块中执行操作?