我的字符串常量声明如下。此代码编译器在正常的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中的答案启用模块。
在.m文件中用作
NSURL * url = [NSURL URLWithString:URL_AC];
甚至声明
#define URL_AC @"https://www.example.com/service?format=json"
使用未声明的标识符URL_AC'编译器错误。
答案 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