如何调配具有相同名称的方法(NSNotificationCenter postNotificationName)?

How to swizzle methods with identical names (NSNotificationCenter postNotificationName)?

我对方法调配相当陌生,我想用它来解决我遇到的问题,这可能是对 NSNotificationCenter 的错误调用的结果。为此,我想重新注销对 NSNotificationCenter 的 postNotification 方法的每次调用。我遇到的问题是有两个方法的名称开头相同(这里是它们可能会被调配的实现):

- (void) xxx_postNotificationName:(nonnull NSString *)notiifcationName object:(nullable id) obj {
    [self xxx_postNotificationName:notiifcationName object:obj];
}

- (void) xxx_postNotificationName:(nonnull NSString *)notificatioName object:(nullable id)obj userInfo:(nullable NSDictionary *)userInfo {
    [self xxx_postNotificationName:notificatioName object:obj userInfo:userInfo];
}

如何通过如下调用将它们识别为单独的选择器?

SEL originalSelector = ...

他们不会都有表格吗?

SEL originalSelector = @selector(postNotificationName:)

我错过了什么?

没有。方法的名称是postNotificationName:object:postNotificationName:object:userInfo:,所以它们是不一样的。