Xcode4 代码4:如何添加预处理器宏。疯狂的

Xcode4 代码4:如何添加预处理器宏。疯狂的,xcode4,Xcode4,所以 在Xcode 3中,添加预处理器宏很容易。Xcode 4并非如此。有人能给我一个秘密握手吗 谢谢, Doug你是说.h文件中有类似的内容吗 #define BLANK_IF_NIL(__STRING) (__STRING ? __STRING : @"") 在你的.m文件中 NSLog("My string: @%", BLANK_IF_NIL(myString)); 用于设置预处理器宏的生成设置在Xcode 4中没有更改。使用预处理生成设置集合中的预处理器宏生成设置 Xcode 4中

所以

在Xcode 3中,添加预处理器宏很容易。Xcode 4并非如此。有人能给我一个秘密握手吗

谢谢,
Doug

你是说.h文件中有类似的内容吗

#define BLANK_IF_NIL(__STRING) (__STRING ? __STRING : @"")
在你的.m文件中

NSLog("My string: @%", BLANK_IF_NIL(myString));

用于设置预处理器宏的生成设置在Xcode 4中没有更改。使用预处理生成设置集合中的预处理器宏生成设置

Xcode 4中更改的是构建设置的位置。阅读以下内容以查找Xcode 4中的生成设置:


我不得不求助于在文本编辑器中编辑项目文件。叹息…

继续@dugla的回答:

编辑
project.pbx
(可以在
YourProject.xcodeproj
中找到,方法是选择在Finder中显示包内容)。搜索:

 /* Begin XCBuildConfiguration section */
在这里,您要添加:

GCC_PREPROCESSOR_DEFINITIONS = (
    "DEBUG=1",
    "$(inherited)",
);
所以你最终会得到这样的结果:

/* Begin XCBuildConfiguration section */
    E4B69B4E0A3A1720003C02F2 /* Debug */ = {
        isa = XCBuildConfiguration;
        baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
        buildSettings = {
            ARCHS = "$(NATIVE_ARCH)";
            CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
            COPY_PHASE_STRIP = NO;
            DEAD_CODE_STRIPPING = YES;
            GCC_AUTO_VECTORIZATION = YES;
            GCC_ENABLE_SSE3_EXTENSIONS = YES;
            GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
            GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
            GCC_MODEL_TUNING = G5;
            GCC_SYMBOLS_PRIVATE_EXTERN = NO;
            GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
            GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
            GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
            GCC_WARN_UNINITIALIZED_AUTOS = NO;
            GCC_WARN_UNUSED_VALUE = NO;
            GCC_WARN_UNUSED_VARIABLE = NO;
            OTHER_CPLUSPLUSFLAGS = (
                "-D__MACOSX_CORE__",
                "-lpthread",
            );
            GCC_PREPROCESSOR_DEFINITIONS = (
                "DEBUG=1",
                "$(inherited)",
            );
        };
        name = Debug;
    };

因此,在Xcode 3中,在构建设置(而不是源代码)中,可以设置一个或多个预处理器宏。Xcode 4对于如何做到这一点非常不透明。谢谢。问题是不存在预处理器集合。我的项目最初是在Xcode 3的黑暗时代创建的,那时我们不需要宏。我的解决方案?我必须在TextMate中编辑项目文件,以使集合显示在构建设置中。Xcode 4 FTW。。。没有。奇怪的是,您的Xcode 3项目没有预处理集合。预处理集合至少可以追溯到Xcode 2。谢谢。我丢失了$(继承的)位,您的示例使我记忆犹新。