2 xcode objective-c variadic-functions equivalent
我正在尝试创建一个类似于此的函数:
#define printf_copy(s, ...) printf(s, ##__VA_ARGS__) // acceptable!
Run Code Online (Sandbox Code Playgroud)
但这是一个预处理器,我需要一个运行时,如下所示:
+ (NSString *)format:(NSString *)first, ...
{
return [NSString stringWithFormat:first, __VA_ARGS__]; // unacceptable!
}
Run Code Online (Sandbox Code Playgroud)
但!!编译器这是不可接受的!
我想弄清楚(...)的局部变量是什么?(是的那3个点)
它与C variadic函数完全相同.这意味着你不能直接传递它,你必须va_list绕过它.你需要这样的东西:
+ (NSString *)format:(NSString *)first, ...
{
NSString *string;
va_list args;
va_start(args, first);
string = [[NSString alloc] initWithFormat:first arguments:args];
va_end(args);
return [string autorelease];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
710 次 |
| 最近记录: |