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



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


什么:

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

  • 我收到以下运行时警告 - 在调用该方法之前

    类可访问性在两者中都实现了.../Frameworks/Reachability.framework/Reachability(0x106590d18).../Frameworks/FooLib.framework/FooLib(0x10628d6b8)将使用两者之一。哪一个是不确定的。

  • FooLib没有要Reachability的依赖关系,它的子依赖关系也没有,也没有提到可访问性这个词。

  • 堆栈跟踪中的内存指针在调用Reachability函数时清楚地解析为FooLib由于

    未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:"+[Reachability reachabilityForLocalWiFi]:无法识别的选择器发送到类 0x10628d6b8">


豆荚文件

  • 我的AppFooLib中的 podfile 配置具有:

    use_frameworks!


尝试:

  • 清洁(厘米移位 K(
  • 清洁(cmd 选择移位 k(
  • 已删除的派生数据文件夹
  • 从这篇文章, 删除系统配置,
  • 清理, 添加系统配置, 构建

有人知道发生了什么吗?任何见解将不胜感激。

好吧,这只是一个猜测,如果结果完全是胡说八道,我会删除答案......

苹果弃用了 - 也许只是删除了 - 该方法reachabilityForLocalWiFi. 因此,您的 pod 可能只是导入满足编译器要求的头文件,但在运行时,该函数不再存在,因此无法识别的选择器异常。

您可以尝试链接的Apple Readme.md 中的建议

尽管如此,找出这是否真的是原因,以及为什么 podfile 以这种方式"行为不端"会很有趣。

最新更新