如何在 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;
};