Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
-(void)forwardInvocation:(NSInvocation *)anInvocation {
if (RX_is_method_signature_void(anInvocation.methodSignature)) {
NSArray *arguments = RX_extract_arguments(anInvocation);
[self interceptedSelector:anInvocation.selector withArguments:arguments];
}
if (self._forwardToDelegate && [self._forwardToDelegate respondsToSelector:anInvocation.selector]) {
[anInvocation invokeWithTarget:self._forwardToDelegate];
}
}public override func interceptedSelector(selector: Selector, withArguments arguments: [AnyObject]!) {
subjectsForSelector[selector]?.on(.Next(arguments))
}public func observe(selector: Selector) -> Observable<[AnyObject]> {
if hasWiredImplementationForSelector(selector) {
print("Delegate proxy is already implementing `\(selector)`, a more performant way of registering might exist.")
}
if !self.respondsToSelector(selector) {
rxFatalError("This class doesn't respond to selector \(selector)")
}
let subject = subjectsForSelector[selector]
if let subject = subject {
return subject
}
else {
let subject = PublishSubject<[AnyObject]>()
subjectsForSelector[selector] = subject
return subject
}
}
RxSwift: работа с GUI