【发布时间】:2016-02-12 14:42:29
【问题描述】:
所以我想我已经很清楚了,基于this blog post 和我的实验:
-
@import MyPod;包含的是自动生成的MyPod-umbrella.h标头,它根据 Podspec 导入所有公共标头 - 自动生成的模块映射还允许显式导入那些并且只允许那些相同的公共标头
-
#import <MyPod/MyPod.h>标头包含的内容是我仍需要制作的MyPod.h标头,但它可以导入我在模块映射中选择的任何内容
然而,我希望实现的是 @import 或 #import 的标头包含大部分但不是全部我的 pod 的公共标头。我希望我的公共标头之一包含通常被省略的可选声明,只能从需要它的少数 .m 文件中手动包含。但是,当代码使用 @import 时似乎不可能,因为该伞形标头中的包含始终与 all 公共标头匹配。
指定自定义模块映射是可能的并且会起作用,但这样做似乎排除了自动生成的映射和伞形标题的好处。
做一些宏和#ifdef技巧来跳过@import中包含的“可选”标头的内容,但如果该标头被#include再次拉入,则使用这些内容是否合理? ?这听起来很难看,但这是我唯一的选择吗?
【问题讨论】:
标签: objective-c xcode cocoa cocoapods