2017-07-22 2 views
0

私は私の質問を知っているタイトルが混乱しているが、私は私の説明を明確にします。私の質問を読んだ後、他の人に役立つように良いタイトルを提案してください。Swiftの動的定数に変数値を表示する方法は?

テキストがAPIのJSONによって決定されるラベルがあります。

text_from_json = "My name is _ and my age is _" 
mylabel.text = text_from_json 

クラス内の2つの定数で私の年齢は「26」、名前は「ジャック」です。

let age = 26 
let name = "jack" 
print("mylabel.text") 
//my output should be "My name is Jack and my age is 26" 

私は、Pythonに似たスウィフト関数/メソッドを探しています:

text_from_json = "My name is {0} and my age is {1}" 

print("My name is {0} and my age is {1}".format(name, age)) 

我々はPythonで.formatに似スウィフトのいずれかの機能を持っていますか?

+0

文字列補間を探している可能性があります。 https://stackoverflow.com/questions/25595542/string-interpolation-in-swift – davecom

+0

@davecom:これ以上のもの - これを達成するためのフレームワークの一部としてiOSが提供する定義済みの関数を探しています。 text_from_json stringを受け付ける関数、検索する文字、別の値で文字を置き換え、変更された文字列を返す – Jack

答えて

0

スウィフトではとてもシンプルです。あなたは上記のコードが動作する

let name = "jacK" 
let age = 26 
let stringFromJSON = "My name is _ and age is _" 
var formattedString = stringFromJSON.replacingOccurrences(of: "_", with: "%@") 
formattedString = String(format: formattedString, name,"\(age)") 
print(formattedString) 

を行うことができ、あなたの特定のケースでは、以下

let name = "jacK" 
    let age = 26 
    //var formattedString = "My name is \(name) and ag is \(age)" 
    var formattedString = String(format: "My name is %@ and age is %d", name,age) 

を行う必要があります。

+0

しかし、メインの文字列が変数に代入されている場合、これは機能しません。 – rmaddy

+0

私は答えを更新しました。それがあなたのために働かない場合は、あなたが得ているエラーを共有してください。 –

+0

問題が見つかりませんでした。質問を参照してください。文字列「My name is ...」はJSONから来て、変数に格納されます。ハードコーディングされた文字列ではありません。 – rmaddy

関連する問題