我有这个扩展名:
extension String {
func localized() -> String {
//... irrelevant code
}
func localizedFormat(arguments: CVarArgType...) -> String {
return String(format: localized(), arguments: arguments)
}
}
这给出了第2行问题标题中的错误:
private static func tr(key: String, _ arguments: CVarArgType...) -> String {
return key.localizedFormat(arguments)
}
但是当我复制localizedFormat
实现时,它可以工作:
private static func tr(key: String, _ arguments: CVarArgType...) -> String {
return String(format: key.localized(), arguments: arguments)
}
问题是tr
的第二次实施是如何运作的,而不是第一次