我正在尝试创建一个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)) } }
它给我以下编译错误
Type CVaListPointer does not conform to protocol CVargType
任何人都知道如何解决这个编译错误?
这应该很简单,只需更改您的参数如下:
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。