From 1be14acabdb66a39fb87fa4fdc7b17ea3fc18a3c Mon Sep 17 00:00:00 2001 From: Vladimir Gordeev Date: Sat, 28 Dec 2024 15:52:34 +0700 Subject: [PATCH 1/2] Fix invoke original selectror with ReactiveCocoa subscribers --- ReactiveObjC/NSObject+RACSelectorSignal.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ReactiveObjC/NSObject+RACSelectorSignal.m b/ReactiveObjC/NSObject+RACSelectorSignal.m index ed809e2ef..600695f95 100644 --- a/ReactiveObjC/NSObject+RACSelectorSignal.m +++ b/ReactiveObjC/NSObject+RACSelectorSignal.m @@ -51,6 +51,13 @@ static BOOL RACForwardInvocation(id self, NSInvocation *invocation) { if (subject == nil) return respondsToAlias; [subject sendNext:invocation.rac_argumentsTuple]; + + NSString *className = NSStringFromClass(class); + Class statedClass = [invocation.target class]; + if (statedClass != class && ![className containsString:RACSubclassSuffix]) { + return NO; + } + return YES; } From cd670857aca0bd7f481a4b9656d7a5d4d93aaf44 Mon Sep 17 00:00:00 2001 From: Vladimir Gordeev Date: Sat, 28 Dec 2024 16:32:58 +0700 Subject: [PATCH 2/2] fix --- ReactiveObjC/NSObject+RACSelectorSignal.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReactiveObjC/NSObject+RACSelectorSignal.m b/ReactiveObjC/NSObject+RACSelectorSignal.m index 600695f95..5bacfb9f3 100644 --- a/ReactiveObjC/NSObject+RACSelectorSignal.m +++ b/ReactiveObjC/NSObject+RACSelectorSignal.m @@ -53,8 +53,10 @@ static BOOL RACForwardInvocation(id self, NSInvocation *invocation) { [subject sendNext:invocation.rac_argumentsTuple]; NSString *className = NSStringFromClass(class); + NSString *selName = NSStringFromSelector(invocation.selector); Class statedClass = [invocation.target class]; - if (statedClass != class && ![className containsString:RACSubclassSuffix]) { + if (statedClass != class && ![className containsString:RACSubclassSuffix] + && ![selName hasPrefix:RACSignalForSelectorAliasPrefix]) { return NO; }