如何在 Objective-C 中声明一个带有可变参数的块函数



如何在 Objective-C 中声明一个带有可变参数的块函数?

NSString *(^fn)(va_list) = ^(...) {  // ?
};

您有两个问题:

  1. va_list参数与...参数不同。
  2. 可变参数 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;
};

最新更新