Swift中的localizeWithFormat和variadic参数

Swift中的localizeWithFormat和variadic参数,第1张

概述我正在尝试创建一个String扩展来执行类似的 *** 作 "My name is %@. I am %d years old".localizeWithFormat("John", 30) 看起来像这样 extension String { func localizeWithFormat(arguments: CVarArgType...) -> String { return String 我正在尝试创建一个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)
总结

以上是内存溢出为你收集整理的Swift中的localizeWithFormat和variadic参数全部内容,希望文章能够帮你解决Swift中的localizeWithFormat和variadic参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存