【问题标题】:Shorthand for NSString's stringWithFormat similar to @[], @{}, @() for NSArrays, NSDictionaries and NSNumbers? [duplicate]NSString 的 stringWithFormat 的简写,类似于 NSArrays、NSDictionaries 和 NSNumbers 的 @[]、@{}、@()? [复制]
【发布时间】:2014-11-06 21:13:24
【问题描述】:

我的问题分为两部分:

  1. 是否有通过 stringWithFormat 创建 NSString 的简写:类似于标题中提到的用于创建数组、字典和数字的简写。大致如下:

NSString *bar = @"bar"; NSString *foobar = @<@"foo %@", bar>

  1. 如果没有,是否可以创建这些速记,如果可以,如何创建?

我在整个项目中经常使用 stringWithFormat 方法,我认为这对于代码的简洁性和整洁性都非常有用。

【问题讨论】:

  • 抱歉,标题应该是“shorthand”而不是“short and”。
  • 您要查找的术语是“对象文字”(如“字符串文字”、“数组文字”等)
  • 我正在使用移动应用程序提问,但似乎找不到编辑功能。谢谢大卫的澄清。

标签: objective-c macros nsstring


【解决方案1】:

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

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);

【讨论】:

  • Clang 会是更好的方法。 #define ss NSString stringWithFormat:,使用类似:[ss @"foo %@", bar];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
相关资源
最近更新 更多