This can be written with a lift, which will simplify the memory management:

```objc
RACSignal *eventSignal = [[self rac_signalForControlEvents:controlEvents] mapReplace:key];
[[self
    rac_liftSelector:@selector(valueForKey:) withSignals:eventSignal, nil]
    subscribe:channel.followingTerminal];
```