ios - 链接器错误,但仅限于测试文件

标签 ios core-graphics linker-errors libraries target

这是我的应用程序的屏幕截图。我正在使用 UIKit 从一些应用程序数据创建 PDF。我在应用程序本身上没有发现错误,但在测试部分我得到了一堆错误,看起来应用程序找不到一些 CoreGraphics 引用。但是 CG 正在 Tests.h 中导入...我可以在模拟器和设备上运行该应用程序,没有任何问题。知道是什么原因造成的吗?

再补充一点:我将制作 PDF 的类导入到另一个应用程序中,但我没有在那里收到错误,所以这很好。那么任何想法可能会发生什么? (是的,这些库在我的应用程序中)

enter image description here

最佳答案

正在导入但未链接。您需要链接 CoreGraphics 框架:

将类头 A 导入类 B 可以让类 B 知道类 A 中的哪些公共(public) API(变量、属性和方法)可以被其他类使用,这就是为什么在编译之前不会出现任何错误。

编译时,您需要实际代码(如果需要,则为 .m 文件),以便能够执行 B 类对 A 类变量、属性和方法的调用。该代码驻留在您链接到项目的库/框架中。您的代码与链接库一起成为最终的编译代码。

这是你需要做的:

  1. 单击您的项目(导航器左上角)
  2. 选择您的 Target 项目
  3. 单击“构建阶段”选项卡
  4. 点击“将二进制文件与库链接”
  5. 添加 CoreGraphics.framework

这应该可以解决。

关于ios - 链接器错误,但仅限于测试文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15144602/

相关文章:

ios - 返回字符串数组并填充 UILabel - Swift 3

ios - 有没有办法获得非平方的 ALAsset 缩略图?

iOS 8 崩溃 - renderInContext :UIGraphicsGetCurrentContext()

c - OCIObjectGetAttr 和 OCIObjectSetAttr 的 LNK2091 错误

ios - Quickblox 中的 Apple mach-o 链接器错误

ios - 如何以编程方式导航到另一个 View Controller ,在 ios 9 中使用 "over current context "表示, Objective-C

objective-c - 中间 View Controller 在关闭模态视图然后弹出 View Controller 后短暂显示

iphone - 如何填充两个 UIBezierPath 之间的空间

iphone - 在 iOS 上,如何用轮廓填充路径? (或同时填充和描边路径)

c++ - 使用 tr1::regex 时出现链接器错误