让我开始说吧,我是 iOS/Xcode 编程的新手,所以我什至不知道该问什么。 我正在尝试向应用程序添加一个静态库,但我以崩溃告终。 库包有一个.h 文件和一个.a 文件。 我正在询问有关如何继续解决问题的一些建议。 这里有一些事实:
- Xcode 7.3 - El captain OS
- 图书馆正在运作。我有一个演示应用程序,它使用我正在尝试使用的同一个库,没有崩溃
将演示应用与我的相比,我没有发现显着差异。我的是从头开始创建的(单 View - Storyboard),演示应用程序使用 xib 文件,我不知道它是如何开发的。 一些文件是相同的(即直接从演示应用程序复制)
崩溃显然发生在库内部,在一个内部调用中
崩溃涉及 NSMutableData 类。这是错误:
+[NSMutableData dataFromHexString:]: 无法识别的选择器发送到类 0x1a085fdb0
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[NSMutableData dataFromHexString:]: 无法识别的选择器发送到类 0x1a085fdb0”
- 在应用程序的代码中(它们都在工作,一个不工作)没有直接引用类 NSMutableData。应用程序中定义的最接近的类是 NSMutableArray,据我所知,它在两个应用程序中的定义和使用方式相同。
这就是为什么我不知道如何进行。 它一定是应用程序中的某些东西阻止了库的工作,因为它正在使用原始演示代码,但我现在不知道它是什么。 我试图设置一些断点来找出问题所在,但是库是在没有调试信息的情况下编译的,因此调试器只显示库中的汇编代码。 我正在寻找有关如何进行的任何线索。
感谢您的帮助 史蒂夫
最佳答案
发现问题。我在追鬼,配置缺少两个编译标志。方法 dataFromHexString 在静态库中声明,当然没有相关文档。 我必须添加两个标志来编译代码: -ObjC 和 -all_load 我的猜测(我还不是很了解环境)是代码能够通过这些标志识别新方法。
关于ios - NSMutableData 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220064/