【问题标题】:Cocoa best practice for architecting a custom framework which requires an Apple framework构建需要 Apple 框架的自定义框架的 Cocoa 最佳实践
【发布时间】:2011-08-04 01:03:49
【问题描述】:

假设我有一个包含十几个类和类别的自定义框架。它们都继承/扩展标准可可类。因此,我的框架在编译期间链接到

我的问题是,如果我添加一个需要 的类,推荐的打包方式是什么?

1) 如果我只是将类添加到框架中,然后导入 QuartzCore,那么我的框架的任何使用者也必须导入 QuartzCore。

2) 如果我将类移到另一个框架中,任何消费者都必须导入我的两个框架以获取全部功能,以及 QuartzCore。第一个框架中的任何类都不能使用第二个框架。

3) 有没有办法做 #ifdef #endif 或类似的事情,然后弱链接 QuartzCore 框架,以便 Cocoa 标准类和 QuartzCore 依赖类都在一个框架中,但消费者没有将 QuartzCore 添加到他们的项目中?如果理想情况下 QuartzCore 不存在,则该类/类别根本无法用于运行时。

【问题讨论】:

    标签: cocoa mac-frameworks


    【解决方案1】:

    就个人而言,我会选择#1。无论如何,几乎所有重要的应用程序都应该链接到 QuartzCore。

    您可以将框架弱链接到您的框架。从您链接到的框架中删除 QuartzCore,然后将参数“-weak_framework QuartzCore”添加到“Other Linker Flags”。

    关于弱链接的完整文档在 Xcode 中。有一个名为“Weak Linking With Apple Frameworks”的指南。

    【讨论】:

      猜你喜欢
      • 2010-12-25
      • 1970-01-01
      • 2013-07-03
      • 2021-10-15
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      相关资源
      最近更新 更多