问题标签 [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.
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?
ios - 如何使用 CocoaPods 正确安装 ReactiveCocoa?
我很陌生ReactiveCocoa
。ReactiveCocoa
几天前我尝试通过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
reactive-cocoa - 用副作用反应委托方法的方法
只是试图围绕某些情况下的 ReactiveCocoa 方法。
我有一个段控制器换出子视图控制器的情况。我需要在这里完成几件事:
- 当移动到父控制器时,我必须更新 的
contentInset
,tableView
因为 iOS7 不使用自定义容器视图为我处理它 - 启动搜索时,我需要淡化导航栏,并更新
contentInset
动画 - 搜索结束时,我需要淡入
navigationBar
并重置contentInset
动画
这是以命令式样式完成此操作的当前代码:
可以对其进行重构以提取一些插入的内容,但在本练习中保持平整。
将在下面发布我的“非常不知道我在做什么”的方法作为答案。
部分回答
好的,所以我试图将信息流提取到相关信号中。
基本上我需要知道:
- 我现在在搜索吗
contentInset
在这种情况下,我的(顶部)的当前值
所以我的方法是
- 为我当前是否正在搜索创建一个 RACSubject
self.currentlySearchingSignal
。 - 把
top
my 的值tableView.contentInset
变成一个信号 sendNext:@(YES)
何时被调用(以及何时返回 YEScurrentlySearchingSignal
)searchBarShouldBeginEditing
sendNext:@(NO)
何时被调用(以及何时返回 YEScurrentlySearchingSignal
)searchBarShouldEndEditing
- ...
好吧,我被困住了。我知道我需要以某种方式组合/订阅这些,但试图以非状态方式考虑它。
- 当添加到父 VC 并且我
contentInset.top
的设置尚未正确时(topLayoutGuide
),我需要在没有动画的情况下设置它。 - 搜索并且我
contentInset.top
的设置不正确(状态栏框架)时,我需要执行动画(然后在我的动画完成之前不要再次更新) - 当不搜索并且我
contentInset.top
的设置不正确时(topLayoutGuide
)我需要执行动画(并且在动画完成之前不会再次更新)
试图解决它
这是我的开始。试图解决#1,但它还没有工作。
objective-c - 反应式 NSMutableDictionary?
如何订阅使用 ReactiveCocoa 从 NSMutableDictionary 添加和删除的对象?另外,我想在通知发生变化时广播通知。我的猜测是广播可以使用 RACMulticastConnection 完成,但我如何将它与字典更改联系起来?我第一次尝试在我的项目中使用 ReactiveCocoa 并坚持我想做的第一件事:(
objective-c - “结合最新”与 ReactiveCocoa 和信号信号
在 ReactiveCocoa 中实现“组合最新”信号的最佳方法是什么?我有以下问题:
给定 N 个文本字段,订阅UIControlEditingEventChanged
事件,并根据被调用的值创建一个新信号。每个订阅者订阅一次,然后将这些值相互结合使用。所以这就是我所拥有的:
rac_validationSignal
我自己的类处理 UITextFields 的验证在哪里。信号正确通过,但一次只能通过一个。我需要一次所有订阅的值,以便获得所有已编辑字段的有效性。
编辑:
一种可能的解决方案涉及一个可变数组,我将新字段添加到该数组中并像往常一样发送组合信号。这看起来不错,还有其他想法吗?
谢谢!
core-data - 过滤 RACSequence 未按预期工作
我正在尝试使用 ReactiveCocoa 刷新获取的对象数组,并且我想过滤掉已删除的结果。我似乎不能让事情正常运行——我希望在 trackSequence 中filter
每个都通过,但相反我看到了一个对象。NSManagedObject
_PFBatchFaultingArray
谁能阐明我做错了什么?谢谢!
objective-c - 如何将 RACSignal 重新绑定到 BOOL 变量?
我有一个以 Node 为基类的基于树的数据结构:
当父节点的分离变量等于 YES 时,子节点的相同属性应该变为 YES。此行为使用以下代码建模:
更改父级时如何重新绑定分离的属性?如果什么都不做,在这种情况下会发生崩溃:
我在这里找到了讨论,但我不知道如何为我的案例采用他们的解决方案。
reactive-programming - catch: 和 subscribeError 之间的区别:
在ReactiveCocoasubscribeError:
中,方法与方法有什么区别catch:
?为什么要返回信号 in catch:
?
ios - 为什么 RACCommand 的块返回信号?
我一直在学习很多关于ReactiveCocoa的知识,但有一件事仍然让我感到困惑:为什么信号块RACCommand
本身会返回一个信号?
我了解 的用例RACCommand
、它的canExecute
信号和信号块,以及它如何连接到 UI 元素。但是除了 之外,还有什么情况会返回[RACSignal empty]
?
ios - 使用 Reactive cocoa 观察 UITouches?
我对反应性可可相当陌生,我试图在我正在尝试构建的游戏中加入 FRP 元素。从我的在线搜索来看,Reactive cocoa 的资源和文档似乎非常有限,并且大多数教程都使用相同的示例!
我想要做的是,拥有一个 RACSignal,它为视图上的当前触摸提供一个值流(为简单起见,假设没有多点触摸)。然后使用 subscribeNext 在 UITouch 对象发生变异时执行我的操作。我无法设置 RAC 信号本身!
目前我正在做以下事情(我不确定这是正确的方法!)
但是每次我 RACSignal 尝试初始化游戏崩溃时,我都会得到以下信息:
我究竟做错了什么?设置 RACSignal 的正确方法是什么?另外,我如何在不同的对象(可能是 MyView 模型)中使用 touchSignal 并使用 subscribe next 在块中执行操作?