假设有两个 Siwtch 需要互异绑定,用 rac 该怎么写?
UISwitch *switch1; UISwitch *switch2; switch1.action = { switch2.on = !switch2.on; } switch2.action = { switch1.on = !switch1.on; }
认证0级讲师
这样?
switch1.on = YES; switch2.on = NO; RACChannelTerminal *t1 = switch1.rac_newOnChannel; RACChannelTerminal *t2 = switch2.rac_newOnChannel; [[t1 map:^id(NSNumber *on) { return @(![on boolValue]); }] subscribe:t2]; [[t2 map:^id(NSNumber *on) { return @(![on boolValue]); }] subscribe:t1];
找到一种解决方案:
RACChannelTerminal *aButtonChannel = [aButton rac_newSelectedChannel]; RACChannelTerminal *bButtonChannel = [bButton rac_newSelectedChannel]; [[aButtonChannel not] subscribe:bButtonChannel]; [[bButtonChannel not] subscribe:aButtonChannel];
这样?
找到一种解决方案: