【问题标题】:NSMutableData errorNSMutableData 错误
【发布时间】:2016-05-13 22:10:34
【问题描述】:

让我开始说我是 iOS/Xcode 编程的新手,所以我什至不知道该问什么。 我正在尝试将静态库添加到应用程序中,但最终导致崩溃。 库包有一个 .h 文件和一个 .a 文件。 我正在征求一些关于如何继续解决问题的建议。 这里有一些事实:

  • Xcode 7.3 - El Captain OS
  • 库正在运行。我有一个演示应用程序,它使用我尝试使用的同一个库而没有崩溃
  • 将演示应用程序与我的应用程序相比,我没有发现显着差异。我的是从头开始创建的(单视图 - 故事板),演示应用程序使用 xib 文件,我不知道它是如何开发的。 有些文件是相同的(即直接从演示应用复制)

  • 崩溃显然发生在库内部,在一个内部调用中

  • 崩溃涉及 NSMutableData 类。这是错误:

    +[NSMutableData dataFromHexString:]: 无法识别的选择器发送到类 0x1a085fdb0

    *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[NSMutableData dataFromHexString:]:无法识别的选择器发送到类 0x1a085fdb0”

    • 在应用程序的代码中(其中一个正在运行,一个没有运行),没有直接引用到 NSMutableData 类。应用程序中定义的最接近的类是 NSMutableArray,据我所知,它在两个应用程序中的定义和使用方式相同。

这就是为什么我不知道如何进行。 它一定是应用程序中的某些东西阻止了库工作,因为它正在使用原始演示代码,但我现在不知道它可能是什么。 我试图放置一些断点来试图查明问题,但是库是在没有调试信息的情况下编译的,所以调试器只显示库中的汇编代码。 我正在寻找有关如何进行的任何线索。

感谢您的帮助 史蒂夫

【问题讨论】:

  • NSMutableData 没有 dataFromHexString: 这样的方法。也许某些库将其添加为类别方法。
  • 正确,我注意到该方法不存在,但在工作应用程序中我没有找到添加到该类的任何方法。在我的应用程序中,我包含了与工作应用程序完全相同的文件。是否有可能某些应用程序配置(info.plist 或其他)可以解决问题?

标签: ios objective-c unrecognized-selector nsmutabledata


【解决方案1】:

发现问题。我在追鬼,配置少了两个编译标志。方法 dataFromHexString 在静态库中声明,当然没有关于它的文档。 我必须添加两个标志来编译代码: -ObjC 和 -all_load 我的猜测(我还不太了解环境)是使用这些标志代码能够识别新方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-21
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多