使用未知数量的参数本地化String

时间:2017-07-14 17:05:10

标签: ios swift

我使用从Localizable.strings返回的值的密钥发送到设备的推送通知。参数的数量是可变的,有时它只需要一个,有时需要一些。

通常本地化一个字符串我会用它:

String.localizedStringWithFormat(NSLocalizedString(notification.localisedKey, comment: "a comment"), notification.localisedArguments)

但是,仅当notification.localisedArguments为单个值时才有效。如果它是一个数组,它会崩溃。

iOS 10中的解决方法是使用以下代码:

NSString.localizedUserNotificationString(forKey: notification.localisedKey, arguments: notification.localisedArguments)

如何为iOS 9及更低版本做一个等效的工作?

1 个答案:

答案 0 :(得分:0)

试试这个(未经测试):

let localizedString = NSLocalizedString(notification.localisedKey, comment: "a comment")
let result = withVaList(notification.localisedArguments) {
    String.localizedStringWithFormat(localizedString, $0)
}