框架cocoapod可以有一个可选的公共标题吗?

时间:2015-11-11 13:36:30

标签: objective-c xcode cocoa cocoapods

所以基于this blog post和我的实验,我认为我有一点清楚:

  • @import MyPod;包含的内容是自动生成的MyPod-umbrella.h标头,根据Podspec导入所有公共标头
  • 自动生成的模块映射还允许显式导入这些,并且只允许那些相同的公共标题
  • #import <MyPod/MyPod.h>标题包含的内容是我仍需要制作的MyPod.h标题,但它可以导入我在模块图中选择的任何内容

然而,我希望实现的是,@import#import的标题包含我的广告系列公众的大多数并非全部头。我希望我的一个公共标题包含通常省略的可选声明,只能从需要它的少数.m文件中手动包含。但是,当代码使用@import时似乎无法实现,因为该标题中的包含始终与所有公共标题匹配。

指定自定义模块地图是可行的并且可行,但这样做似乎排除了自动生成的地图的好处。伞头。

做一些宏观和放大是否犹豫不决? #ifdef欺骗我跳过&#34;可选&#34;的内容标题包含在@import中,但如果使用#include再次提取该标题,则使用内容?这听起来很难看,但这是我唯一的选择吗?

1 个答案:

答案 0 :(得分:0)

我发现在使用框架cocoapods时尝试的所有#ifdef技巧都存在问题,但我确信它们在没有时会工作。但我真的不想对框架产生偏见,并希望为两者提供解决方案。

所以采取另一种方法,我发现项目访问pod的私有标题并不难!请参阅herehere(最后一个提示适用于Swift,但我确信正确的@import也适用于Objective-C。)

所以在我的cocoapod中,我要将可选标头设为私有,然后依赖我的用户使用这些方法来访问它。