2014-04-02 53 views
0

我在常量中使用宏。这是我的代码。将多行字符串传递给宏

#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. 

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

回答

2

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

#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."] 
0

三件事情你需要知道:

如何无需不可能长线创建长字符串:这是非常容易的。如果一个接一个地写入多个字符串文字,编译器会将它们变成一个。例如

@"This " 
"is " 
"a " 
"very " 
"long " 
"string." 

是完全一样的

@"This is a very long strong." 

如何创建包含换行符(做琴弦,只有当你有,例如用于文本要拿出在多个段落):只需在你的字符串中插入\ n。

如何制作非常长的宏:如果一行中的最后一个字符是一个没有任何字符的反斜杠字符(甚至不是空格字符),那么编译器会将该行与下一行连接起来。你用它来创建长的宏。像

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