我想在Objective-C中编写一个函数,例如下面的函数,它接受可变数量的参数,并将这些参数传递给+stringWithFormat:
。我知道vsnprintf
,但这意味着将NSString的'格式'转换为C并返回(并且也意味着转换其中的格式化占位符以及...)。下面如何将可变数量的参数“传递”到NSString的+ stringWithFormat:
代码编译,但当然不表现为我想:)
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
- 友好的版本,或者是有可能写一个?
只是为了证明这不仅仅是一个玩具的例子,我很乐意在这里也使用这种方法:http://cocoaheads.byu.edu/wiki/different-nslog – 2009-09-14 22:52:34
是的! NSLog过于健谈,有时难以阅读。我想到的是一种非常简单的国际化我的应用程序的方式...我想写一些类似tr(@“无法打开文件%@”,filePath);例如,并且在开发的早期阶段将其简单地返回(正确格式化),然后再有一个工具可以找到所有的tr()调用,从它找到的调用中为翻译创建所需的资源文件,那么稍后我只需要翻开一个开关,而tr()调用实际上会查找并翻译它们传递的消息...... – 2009-09-19 19:10:09