Iphone 将多行字符串传递给宏

Iphone 将多行字符串传递给宏,iphone,ios7,Iphone,Ios7,我在常量中使用宏。这是我的密码 #define kTermsConditions(message) [NSString stringWithFormat:@"USER TERMS AND CONDITIONS PLEASE READ THIS BEFORE ACCESSING THE INC. (“”) ONLINE SERVICE. BY ACCESSING THE U, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS BELOW.

我在常量中使用宏。这是我的密码

#define kTermsConditions(message) [NSString stringWithFormat:@"USER TERMS AND CONDITIONS

PLEASE READ THIS BEFORE ACCESSING THE INC. (“”) ONLINE  SERVICE.  BY ACCESSING THE U, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS BELOW.  IF YOU DO NOT WISH TO BE BOUND BY THESE TERMS AND CONDITIONS, YOU MAY NOT USE THE SITE.

1. ALL PERSONS USING THIS SITE AGREE TO REPORT ON (MANIFESTS) IN ACCORDANCE WITH 49 U.S.C, AND 8 C.F.R. PARTS 217, 231, AND 251.

2. USERS MUST BE AFFILIATED WITH AN APPROVED OPERATOR.  AN CHOOSING TO USE THE SERVICES OF SUCH USER, WHETHER AN AIRCRAFT OPERATOR EMPLOYEE OR A THIRD-PARTY, IS SPECIFICALLY AWARE THAT IT IS LIABLE FOR ALL ACTIONS OR INACTION OF THE USER WHILE TRANSMITTING ON ITS BEHALF.  RELIANCE ON A REGISTERED USER IS NOT A DEFENSE FOR INCORRECT OR INCOMPLETE DATA, OR FOR PENALTY ACTIONS AGAINST THE.

3. ELIGIBILITY FOR USE OF AND ACCESS TO THIS SITE IS SUBJECT TO FINAL APPROVAL AND ACCEPTANCE BY.

但我不想把这个冗长的多行字符串打包到宏中。请指导。

您需要添加一个新的行代码字符(如果以这种方式调用),它只是一个
\
。这将告诉编译器字符串将在下一行继续

#define kTermsConditions(message) [NSString stringWithFormat:@"USER TERMS AND CONDITIONS\
\
PLEASE READ THIS BEFORE ACCESSING THE INC. (“”) ONLINE  SERVICE.  BY ACCESSING THE U, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS BELOW.  IF YOU DO NOT WISH TO BE BOUND BY THESE TERMS AND CONDITIONS, YOU MAY NOT USE THE SITE.\
\n\n\
1. ALL PERSONS USING THIS MCL/APIS SITE AGREE TO REPORT ON (MANIFESTS) IN ACCORDANCE WITH 49 U.S.C, AND 8 C.F.R. PARTS 217, 231, AND 251.\
\n\n\
2. USERS MUST BE AFFILIATED WITH AN APPROVED OPERATOR.  AN CHOOSING TO USE THE SERVICES OF SUCH USER, WHETHER AN AIRCRAFT OPERATOR EMPLOYEE OR A THIRD-PARTY, IS SPECIFICALLY AWARE THAT IT IS LIABLE FOR ALL ACTIONS OR INACTION OF THE USER WHILE TRANSMITTING ON ITS BEHALF.  RELIANCE ON A REGISTERED MCL/APIS USER IS NOT A DEFENSE FOR INCORRECT OR INCOMPLETE DATA, OR FOR PENALTY ACTIONS AGAINST THE.\
\n\n\
3. ELIGIBILITY FOR USE OF AND ACCESS TO THIS SITE IS SUBJECT TO FINAL APPROVAL AND ACCEPTANCE BY."]

你需要知道三件事:

如何在没有不可能的长线的情况下创建长字符串:这非常简单。如果您一个接一个地编写多个字符串文字,编译器会将它们转换为一个。比如说

@"This "
"is "
"a "
"very "
"long "
"string."
完全一样

@"This is a very long strong."
如何创建包含换行符的字符串(仅在必要时执行此操作,例如,对于要在多个段落中出现的文本):只需在字符串中插入\n即可

如何生成超长宏:如果一行中的最后一个字符是反斜杠字符,后面没有任何字符(甚至没有空格字符),那么编译器将该行与下一行连接起来。您可以使用它来创建长宏。像

#define MYSTRING @"This "\
    "is "\
    "a "\
    "very "\
    "long "\
    "macro. "