спасибо @Martin. Это потрясающе.

я есть код ниже в Swift 3:

 class StringUtility {

  static func Localizer(tableName: String?) -> (_ key: String, _ params: CVarArg...) -> String {
    return { (key: String, params: CVarArg...) in

      let content = NSLocalizedString(key, tableName: tableName, comment: "")

      if params.isEmpty {
        return content
      }

      print(params) ->>>>>> this prints [[[Wells Fargo]]]
      return NSString.init((format: content, arguments: getVaList(params))) as String
    }
  }
}

func localizationHelper(tableName: String, key: String, params: CVarArg...) -> String {
  let t = StringResourceUtility.Localizer(tableName: tableName)
  print(params) - >>>>>>>>>> this prints [[Wells Fargo]]
  return t(key, params)
}

Если вы видите операторы печати в двух вышеупомянутых функциях, [] добавляются каждый раз, когда CVarArg передается внутри функций, что приводит к неправильной выводимой строке локализации.

1) CVarArg не может быть передан несколько раз, как в коде выше? 2) как это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос