iphone - 如何 "pass on"可变数量的参数到 NSString 的 +stringWithFormat :

标签 iphone objective-c cocoa nsstring variadic-functions

我想用 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;
}

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

最佳答案

initWithFormat:arguments:

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...”版本

关于iphone - 如何 "pass on"可变数量的参数到 NSString 的 +stringWithFormat :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1420421/

相关文章:

iphone - UITextView.text 不起作用

iphone - 将 HTML 转换为 PDF 时出现额外空白页

iphone - 将 Sqlite 数据库与 iCloud 同步?

ios - IOS 中的下拉列表问题

cocoa - 如何在 NSTokenField 中传递indexofselecteditem

iphone - 获取经度和纬度值

objective-c - Http 日期到 NSDate

ios - JSON 解析器不工作 objective-c

macos - 始终在非视网膜显示屏上使用的图像的视网膜版本

cocoa - 哪些 cocoa 应用程序正在使用 AquaticPrime 许可系统?