Iphone 使用静态库时发生iOS NSKeyedUnachiver错误
我制作了一个自定义静态库,用于iOS项目。当我使用NSKeyedUnarchiver来取消归档数据时。当我试图在库中使用它时,它抛出一个异常。我试图将静态库中的类复制到我的项目中,看看这是否可行,这是否解决了问题,但显然违背了静态库的目的。我还尝试了发布/调试和模拟器/设备的几种组合,但仍然不起作用 NSKeyedUnarchiver在查找需要取消归档的类时遇到困难吗 编辑Iphone 使用静态库时发生iOS NSKeyedUnachiver错误,iphone,xcode,static,Iphone,Xcode,Static,我制作了一个自定义静态库,用于iOS项目。当我使用NSKeyedUnarchiver来取消归档数据时。当我试图在库中使用它时,它抛出一个异常。我试图将静态库中的类复制到我的项目中,看看这是否可行,这是否解决了问题,但显然违背了静态库的目的。我还尝试了发布/调试和模拟器/设备的几种组合,但仍然不起作用 NSKeyedUnarchiver在查找需要取消归档的类时遇到困难吗 编辑 我跟踪了抛出的异常,它说不能取消归档类JGObjectRep,它是静态库中的其他类之一。请记住,如果我将这些复制到项目中,
我跟踪了抛出的异常,它说不能取消归档类JGObjectRep,它是静态库中的其他类之一。请记住,如果我将这些复制到项目中,这就可以了。对不起,我不知道这里使用的静态lib的特殊性,但我还记得其他平台的一些想法 首先,问题似乎是类信息对运行时系统不完全可用,因此出现了错误 因此,静态库要么不包含所需的信息,要么链接器不传递信息。在后一种情况下,除非您能找到启用此功能的额外链接器选项,否则您就完蛋了。因此,请阅读链接器手册,查看是否有相关选项 在前一种情况下,您可以首先使用工具查看导出的符号(我相信“nm”可以做到这一点),以验证类名及其结构描述是lib中符号的一部分。我不知道它会是什么样子,但也许谷歌能帮上忙 另一个想法是:主代码是否引用了特定的类?否则,链接器可能不会将其包含在最终代码中,因为它认为它只在静态库的环境中使用,因此其他地方不需要它。因此,请尝试查看编译器或链接器的命令选项中的声明或源代码中的pragmas是否允许您使该类成为全局已知的类
祝你好运 尝试将这些选项添加到链接器标志中: -ObjC
-哦,如果你想知道的话,请告诉我们,因为我对此也很好奇!能否直接在代码中创建JGObjectRep对象?有了这些代码,NSKeyedUnachiver找到类了吗?是的,当我在代码中创建一个JGObjectRep时,它工作得很好。是的,你能解释一下它到底是做什么的吗?