我有一个 IB_DESIGNABLE
自定义 NSView
子类。绘图时,我希望我的 View 仅在 Interface Builder 中运行时才执行方法。我查了一下,Apple 的文档指出:
You can use the preprocessor macro
TARGET_INTERFACE_BUILDER
to specify code for inclusion with or exclusion from your custom view class.- (void)connectToMyServer { #if !TARGET_INTERFACE_BUILDER // connect to the server #else // don't connect; instead, draw my custom view #endif }
我跳转到我的代码,并将以下内容添加到我的方法之一:
#if TARGET_INTERFACE_BUILDER
[self myMethodForInterfaceBuilder];
#endif
我立即收到以下错误:
... /MyCustomView.m:134:8: Use of undeclared identifier 'TARGET_INTERFACE_BUILDER'
这让我相信 TARGET_INTERFACE_BUILDER
预处理器宏仅适用于使用 iOS SDK 的 Xcode 目标。我的这个假设是正确的,还是我忽略了什么?任何建议都会很棒!谢谢。
最佳答案
该宏仅在 Interface Builder 构建您的代码时定义。因此正确的用法是这样的:
#ifdef TARGET_INTERFACE_BUILDER
... // for Interface Builder
#else
... // regular behavior
#endif
关于ios - 目标 Interface Builder 的预处理器宏不适用于 OS X?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946815/