>我遇到了无法识别的选择器错误,因为我的应用程序在运行时调用方法时解析了错误的库。
什么:
-
我正在使用
Reachability
和私有框架,我们会说FooLib
-
我收到以下运行时警告 - 在调用该方法之前
类可访问性在两者中都实现了
.../Frameworks/Reachability.framework/Reachability(0x106590d18)
和.../Frameworks/FooLib.framework/FooLib(0x10628d6b8)
将使用两者之一。哪一个是不确定的。 -
FooLib
没有要Reachability
的依赖关系,它的子依赖关系也没有,也没有提到可访问性这个词。 - 堆栈跟踪中的内存指针在调用
Reachability
函数时清楚地解析为FooLib
由于未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:"+[Reachability reachabilityForLocalWiFi]:无法识别的选择器发送到类 0x10628d6b8">
豆荚文件
- 我的
App
和FooLib
中的 podfile 配置具有:use_frameworks!
尝试:
- 清洁(厘米移位 K(
- 清洁(cmd 选择移位 k(
- 已删除的派生数据文件夹 从这篇文章, 删除系统配置,
- 清理, 添加系统配置, 构建
有人知道发生了什么吗?任何见解将不胜感激。
好吧,这只是一个猜测,如果结果完全是胡说八道,我会删除答案......
苹果弃用了 - 也许只是删除了 - 该方法reachabilityForLocalWiFi
. 因此,您的 pod 可能只是导入满足编译器要求的旧头文件,但在运行时,该函数不再存在,因此无法识别的选择器异常。
您可以尝试链接的Apple Readme.md 中的建议
尽管如此,找出这是否真的是原因,以及为什么 podfile 以这种方式"行为不端"会很有趣。