【发布时间】:2014-08-04 17:57:46
【问题描述】:
我有这个代码:
RAC(self.viewModel , password) = self.signupCell.passwordTextField.rac_textSignal;
RAC(self.viewModel , userName) = self.signupCell.usernameTextField.rac_textSignal;
RAC([UIApplication sharedApplication], networkActivityIndicatorVisible) = self.viewModel.executeRegister.executing;
在我的登录页面。 起初运行完美,但用户注销并再次进入注册页面,应用程序崩溃了:
RAC([UIApplication sharedApplication], networkActivityIndicatorVisible) = self.viewModel.executeRegister.executing;
有错误:
'信号名称:已绑定到对象上的关键路径“networkActivityIndicatorVisible”,添加信号名称:未定义行为'
我猜这与订阅 UIApplication 事件有关。但我不确定除了发送订阅者之外我还能做什么:
[subscriber sendCompleted]
有人遇到过同样的问题吗?
谢谢。
编辑
在@erikprice 和@powerj1984 的帮助下,我找到了解决方案:
RAC([UIApplication sharedApplication], networkActivityIndicatorVisible) = [self.viewModel.executeRegister.executing takeUntilBlock:^BOOL(id x) {
return _viewShowing;
}];
“_viewShowing”真实值在 ViewWillAppear 上设置为 YES,在 ViewWillDisapear 上设置为 NO。 这不是最好的编码。所以如果有人有更好的选择,我很乐意使用它。 谢谢。
【问题讨论】:
-
尝试添加一个 takeUntil,直到用户离开登录屏幕时发送@YES 信号?
-
感谢您的回复,我似乎无法“doUntil”调用 dealloc 方法。
标签: objective-c reactive-cocoa