我对Objective C很新,我想根据另一个常量的值定义一些常量。
#define MODE_DEV YES
#if (MODE_DEV)
#define WEBSERVICE_URL @"http://dev.testurl.com";
#else
#define WEBSERVICE_URL @"http://prod.testurl.com";
#endif
我正在使用WEBSERVICE_URL
。
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@add_device_token", WEBSERVICE_URL]];
但我在上面的行中遇到错误。
错误上写着"Expected ]"
。
我不知道我的代码有什么问题。
答案 0 :(得分:7)
问题是#define
行末尾的分号。
请记住,#define
只是文字替代。所以你说:
#define WEBSERVICE_URL @"http://dev.testurl.com";
因此分号是文本替换的一部分,并在上下文中给出了无意义:
NSURL *url =
[NSURL URLWithString:
[NSString stringWithFormat:
@"%@add_device_token", @"http://dev.testurl.com";]];
^
答案 1 :(得分:1)
你应该记住的关键#define
只是替换文字(永远记住它)
EXP:
#define something bySomethingElse...!@#$%^&*
使用something
的地方,xcode会将其替换为bySomethingElse...!@#$%^&*
您应该删除";"
祝你好运答案 2 :(得分:0)
这里不需要分号分隔符。
#define MODE_DEV YES
#if (MODE_DEV)
#define WEBSERVICE_URL @"http://dev.testurl.com"
#else
#define WEBSERVICE_URL @"http://prod.testurl.com"
#endif
答案 3 :(得分:0)
它是如何完成的:
#define MODE_DEV YES
#if (MODE_DEV)
#define WEBSERVICE_URL @"http://dev.testurl.com"
#else
#define WEBSERVICE_URL @"http://prod.testurl.com"
#endif
NSURL *url = [NSURL URLWithString:WEBSERVICE_URL "/add_device_token"];