testing目标程序中意外的“@”

我有如下所示的string常量。 此代码编译器在正常的应用程序debugging和发布目标。 但在应用程序的testing目标(Ctrl + U)中,我在testing目标程序中出现意外的“@”错误。 使用xcode 7。

模块在这个问题中被解答 。

HeaderA.h

#define URL_A "http://www.example.com/service" 

HeaderB.h

 #define URL_AC @URL_A 

在这里出现错误,在程序中出现意外的“@”。 从macros@URL_AC扩展

模块在这个问题中被解答 。

在这里输入图像说明

用于.m文件中,

 NSURL * url = [NSURL URLWithString:URL_AC]; 

即使声明

 #define URL_AC @"https://www.example.com/service?format=json" 

得到'使用未声明的标识符URL_AC'编译器错误。

我发现了这个问题。 'define'有一些#ifdefmacros。 这是使用build settings中的preprocessor declaration进行控制的。 在我的testing目标中没有定义。 当我定义它,编译器得到'定义'和所有的错误消失了。

 #if defined(TEST0) #define URL0 "http://www.example.com" #elif defined(TEST1) #define URL1 "http://www.example2.com" #endif