错误:无法识别的选择器,警告:两者都实现了类

时间:2018-06-12 23:56:40

标签: ios xcode cocoapods unrecognized-selector

我遇到无法识别的选择器错误,因为我的App在运行时调用方法时解析了错误的库。

什么:

  • 我使用Reachability和私有框架,我们会说FooLib

  • 我在调用方法之前得到了以下运行时警告

      

    类可达性在两者中都实现   .../Frameworks/Reachability.framework/Reachability(0x106590d18)和   .../Frameworks/FooLib.framework/FooLib(0x10628d6b8)   将使用两者之一。哪一个未定义。

  • FooLibReachability没有依赖关系,也没有依赖关系,也没有提到Reachability这个词。

  • 调用FooLib函数时,堆栈跟踪中的内存指针明确解析为Reachability
      

    ***由于未捕获的异常终止应用' NSInvalidArgumentException',原因:' + [Reachability reachabilityForLocalWiFi]:无法识别的选择器发送到类0x10628d6b8'

Podfile

  • 我的App和我的FooLib中的Podfile配置包含:
      

    use_frameworks!

尝试:

  • 清洁(Cmd Shift K)
  • 清洁(Cmd Opt Shift K)
  • 已删除DerivedData文件夹
  • From this post,删除了SystemConfig,Clean,添加SystemConfig,Build

有没有人知道最新情况?任何见解都会非常感激。

1 个答案:

答案 0 :(得分:1)

好的,这只是猜测,如果事实证明是完全废话,我会删除答案......

Apple已弃用 - and maybe just have removed - 方法reachabilityForLocalWiFi。 因此,您的pod可能只是导入满足编译器的头文件,但在运行时,该函数不再存在,因此无法识别的选择器异常。< / p>

您可以尝试linked Apple Readme.md

中的建议

然而,有趣的是要找出这是否真的是原因,以及为什么podfiles以这种方式“行为不端”。