我正在尝试订阅信号,但当单元重用时,会导致异常“信号名称:已绑定到对象上的键路径”昵称“,添加信号名称:是未定义的行为”
以下是代码
RACSignal *_sn = [[cell.functionTextField.rac_textSignal takeUntil:cell.rac_prepareForReuseSignal] map:^(NSString *value) {
if ([value length] > 9) {
return [value substringToIndex:9];
} else {
return value;
}
}];
RAC(cell.functionTextField, text) = _sn;
RAC(_hp,nickname) = _sn;我该怎么解决这个问题呢?
发布于 2015-10-29 12:59:02
- (RACDisposable *)setKeyPath:(NSString *)keyPath onObject:(NSObject *)object nilValue:(id)nilValue 在调试模式中由上述方法RACSignal+Operations.m引发的断言。避免绑定一个信号两次是一个好习惯。
发布于 2016-04-03 16:49:50
在我的例子中,这是因为我同时做了两件事,这导致了冲突:
1)在具有发起网络请求的allowsConcurrentExecution = YES的UIButton上设置到.rac_command的RACCommand;
2)和...我将UIButton的enabled属性设置为"not executing:
RAC(viewallButton, enabled) = [command.executing not];
显然,当信号仍在执行网络请求时,allowsConcurrentExecution = NO已经负责禁用按钮,当我添加此代码来禁用按钮时,它绑定了两次按钮,从而导致了冲突。
https://stackoverflow.com/questions/32110147
复制相似问题