2

我有一个相对简单的问题,希望能得到答案。

想象一下,我在 iOS 中有一个静态库,比如 MyLibrary.a

在这个库中说有一些 .m 文件调用:"#import SomeHeaderWhichDoesNotYetExist.h" - 但是问题是,当"#import SomeHeaderWhichDoesNotYetExist.h"调用时, SomeHeaderWhichDoesNotYetExist.h 可能不一定存在于项目中(正如其标题所暗示的那样)。例如,

#ifdef something
#import SomeHeaderWhichDoesNotYetExist.h
#endif

当有人使用Mylibrary.a 时——他/她可能会在稍后实现 SomeHeaderWhichDoesNotYetExist.h,并且我们希望 MyLibrary.a 能够按照上面代码中的指定自动使用它。你认为这可能吗?

谢谢你。

4

2 回答 2

2

如您所见,我们经常使用类似的类型

#ifdef TARGET_OS_IPHONE 
    // iOS
#elif defined TARGET_IPHONE_SIMULATOR
    // iOS Simulator
#elif defined TARGET_OS_MAC
    // Other kinds of Mac OS
#else
    // Unsupported platform
#endif

所以我会说,是的,你可以

但是你需要定义something.

于 2012-12-05T13:42:16.110 回答
0

不,它不能,至少不是你展示的方式。

您显示的条件编译块用于预处理器,它在编译之前被调用。如果您想以这种方式包含任何新内容,则必须重新构建。

于 2012-12-05T13:26:16.720 回答