在objec字符串中将宏常量用双引号扩起来就可以了。
objc字符串中的连续两个""会被省略。
#define TABLE_NAME @"table_name"
#define TABLE_NAME_C "table_name"
- (void)viewDidLoad {
NSString* sql0 = @"select * from table_name";
NSString* sql1 = @"select * from "TABLE_NAME_C "";
NSLog(@"%@",sql1);
NSString* sql2 = @"select * from TABLE_NAME";
NSLog(@"%@",sql2);
NSString* sql3 = @"select * from "TABLE_NAME "";
NSLog(@"%@",sql3);
NSLog(@"sql0和sql1是否相等:%@",[sql0 isEqualToString:sql1] ? @"是": @"否");
NSLog(@"sql0和sql2是否相等:%@",[sql0 isEqualToString:sql2] ? @"是": @"否");
NSLog(@"sql0和sql3是否相等:%@",[sql0 isEqualToString:sql3] ? @"是": @"否");
}
输出:
2016-04-06 10:22:02.656 Test[2047:43308] select * from table_name
2016-04-06 10:22:02.656 Test[2047:43308] select * from TABLE_NAME
2016-04-06 10:22:02.656 Test[2047:43308] select * from table_name
2016-04-06 10:22:02.657 Test[2047:43308] sql0和sql1是否相等:是
2016-04-06 10:22:02.657 Test[2047:43308] sql0和sql2是否相等:否
2016-04-06 10:22:02.657 Test[2047:43308] sql0和sql3是否相等:是
参考:
http://stackoverflow.com/questions/8844981/how-to-expand-a-macro-into-nsstring-without-using-any-string-concatenation-at-ru
http://stackoverflow.com/questions/798221/c-macros-to-create-strings