意外的' @'在测试目标的程序中

时间:2015-10-21 09:57:35

标签: ios objective-c xcode xctest

我的字符串常量声明如下。此代码编译器在正常的app调试和发布目标中。但是在app的测试目标(Ctrl + U)中,我收到了意外的错误' @'在测试目标的程序中。使用xcode 7.

this question中的答案启用模块。

HeaderA.h

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

HeaderB.h

#define URL_AC          @URL_A

此处出现错误,出乎意料的是' @'在程序中。扩展自宏@URL_AC

this question中的答案启用模块。

enter image description here

在.m文件中用作

NSURL * url = [NSURL URLWithString:URL_AC];

甚至声明

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

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

1 个答案:

答案 0 :(得分:0)

我发现了问题。 '定义'有一些#ifdef宏。这是使用preprocessor declaration中的build settings来控制的。在我的测试目标中,它没有定义。当我定义它时,编译器得到'定义'并且所有错误都消失了。

#if defined(TEST0)
#define URL0    "http://www.example.com"

#elif defined(TEST1)
#define URL1    "http://www.example2.com"

#endif