私は、問題は、私は可変引数のparamsでは不可能であるObjective Cの中で、この方法を利用できるようにする必要があるということです以下の方法スウィフトambiguos方法
static func t(key: String, params: AnyObject...) -> String{
let string = .......
if (params.count == 0){
return string
} else {
return String(format: string, params)
}
}
を持っています。私がしようとしたのは、paramsが配列である目的の別のメソッドを作成することです。しかし、私はまた、paramsがないときのために3番目のものを持っている必要があります。
@objc static func t(key: String, params: [AnyObject]) -> String
@objc static func t(key: String) -> String
しかし、今スウィフトは第一と第三の方法は、単にキーを取ることができますので、この方法t
があいまいであることを不平を言います。
この作品を作成するには?私は別の名前を使うことができることを知っていますが、私は物事を一貫させておきたいと思います。
更新: もう1つの問題は、paramsが配列であり、paramsのグループではないため、String(format:...)
を関数内で正しく呼び出すことができないことです。これを解決する良い方法はありますか?
は、問題が発生した...
String.init(format: String, arguments: [CVarArgType])
のようなものをオフに離乳するか、またはObjective Cの中に基本メソッドを実装することです、例えば'let foo = C.t(" bar ")'を実行します。 –はい、もちろん、マーティン、ありがとう!私は答えを修正しました... – milos
恐ろしい!それがきれいになりたいと思っています:)しかし、それは動作します! –