如何在 Objective-C 中声明带有可变参数的块函数?
How to declare a block function with variadic arguments in Objective-C?
如何在 Objective-C 中声明带有可变参数的块函数?
NSString *(^fn)(va_list) = ^(...) { // ?
};
你有两个问题:
va_list
参数与 ...
参数不同。
- 可变参数 C 函数必须至少有一个命名参数。
这里有一个编译的例子:
NSString *(^fn)(NSString *format, ...) = ^NSString *(NSString *format, ...){
va_list ap;
va_start(ap, format);
NSString *answer = [[NSString alloc] initWithFormat:format arguments:ap];
va_end(ap);
return answer;
};
如何在 Objective-C 中声明带有可变参数的块函数?
NSString *(^fn)(va_list) = ^(...) { // ?
};
你有两个问题:
va_list
参数与...
参数不同。- 可变参数 C 函数必须至少有一个命名参数。
这里有一个编译的例子:
NSString *(^fn)(NSString *format, ...) = ^NSString *(NSString *format, ...){
va_list ap;
va_start(ap, format);
NSString *answer = [[NSString alloc] initWithFormat:format arguments:ap];
va_end(ap);
return answer;
};