NSString的stringWithFormat的简写类似于@ [],@ {},@()的NSArrays,NSDictionaries和NSNumbers?

时间:2014-11-06 21:13:25

标签: objective-c macros nsstring

我的问题分为两部分:

  1. 是否有通过stringWithFormat创建NSStrings的简写:类似于标题中提到的创建数组,字典和数字的简写。有点像:
  2. NSString *bar = @"bar"; NSString *foobar = @<@"foo %@", bar>

    1. 如果没有,是否可以创建这些缩写,如果是,怎么做?
    2. 我在整个项目中使用了stringWithFormat方法,我认为这对于代码简单性和整洁性都非常有用。

1 个答案:

答案 0 :(得分:5)

不存在这样的简写,但您可以创建辅助函数

static inline NSString *CreateStr(NSString *format, ...) NS_FORMAT_FUNCTION(1,2) {
    va_list ap;
    va_start(ap, format);

    NSString *message = [[NSString alloc] initWithFormat:format arguments:ap];

    va_end(ap);
    return message;
}

使用

NSString *bar = @"bar";
NSString *foobar = CreateStr(@"foo %@", bar);