33

我想在 Objective-C 中编写一个函数,如下所示,它接受可变数量的参数,并将这些参数传递给+stringWithFormat:. 我知道vsnprintf,但这意味着将 NSString“格式”转换为 C 并返回(也意味着转换其中的格式占位符......)。

下面的代码可以编译,但当然不会像我想要的那样运行:)

NSString *estr(NSString *format, ...) {
    va_list args;
    va_start(args, format);
    NSString *s = [NSString stringWithFormat:format, args];
    va_end(args);
    return s;
}

基本上:是否有va_list该方法的友好版本+stringWithFormat:,或者是否可以编写一个?

4

1 回答 1

49

initWithFormat:参数:

NSString *estr(NSString *format, ...) {
    va_list args;
    va_start(args, format);
    NSString *s = [[[NSString alloc] initWithFormat:format arguments:args] autorelease];
    va_end(args);
    return s;
}

他们似乎没有方便的构造函数“stringWith ...”版本

于 2009-09-14T09:03:49.440 回答