Swift中的localizeWithFormat和variadic参数
发布时间:2020-12-14 05:47:02 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个String扩展来执行类似的操作 "My name is %@. I am %d years old".localizeWithFormat("John",30) 看起来像这样 extension String { func localizeWithFormat(arguments: CVarArgType...) - String { return String.localizedStringWithFo
我正在尝试创建一个String扩展来执行类似的操作
"My name is %@. I am %d years old".localizeWithFormat("John",30) 看起来像这样 extension String { func localizeWithFormat(arguments: CVarArgType...) -> String { return String.localizedStringWithFormat( NSLocalizedString(self,comment: ""),getVaList(arguments)) } } 它给我以下编译错误
任何人都知道如何解决这个编译错误?
这应该很简单,只需更改您的参数如下:
extension String { func localizeWithFormat(name:String,age:Int,comment:String = "") -> String { return String.localizedStringWithFormat( NSLocalizedString(self,comment: comment),name,age) } } "My name is %@. I am %d years old".localizeWithFormat("John",age: 30) // "My name is John. I am 30 years old" init(format:locale:arguments:) extension String { func localizeWithFormat(args: CVarArgType...) -> String { return String(format: self,locale: nil,arguments: args) } func localizeWithFormat(local:NSLocale?,args: CVarArgType...) -> String { return String(format: self,locale: local,arguments: args) } } let myTest1 = "My name is %@. I am %d years old".localizeWithFormat(NSLocale.currentLocale(),args: "John",30) let myTest2 = "My name is %@. I am %d years old".localizeWithFormat("John",30) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |