【问题标题】:How to swizzle methods with identical names (NSNotificationCenter postNotificationName)?如何混合具有相同名称的方法(NSNotificationCenter postNotificationName)?
【发布时间】:2016-02-17 20:50:44
【问题描述】:

我对方法调配相当陌生,我想用它来解决我遇到的问题,这可能是对 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:)

我错过了什么?

【问题讨论】:

    标签: objective-c method-swizzling


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-01
      • 2011-11-23
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多