考虑以下调用:
NSString* localized = NSLocalizedString([NSString stringWithFormat:@"Hello %@", @"World"], @"");
它有什么问题?我看不出任何本质上的错误,但是编译器/预处理器抱怨传递给它的参数太多。另一方面,以下两个编译:
显式变量:
NSString* string = [NSString stringWithFormat:@"Hello %@", @"World"];
NSString* localized = NSLocalizedString(string, @"");
用括号括起来:
NSString* localized = NSLocalizedString(([NSString stringWithFormat:@"Hello %@", @"World"]), @"");
看起来预处理器/编译器错误地解析了,
字符。
我在 Xcode 7 beta 6 中得到了这个,所以它可能是 Clang 工具链中的一个新错误。