2017-05-31 11 views
0

申し訳ありませんが、それは愚かな質問ですが、私はそれがそのような何かを行うことも可能と思われる場合:Swiftの関数結果 "インライン"で変数値を設定できますか?

lblTitle.text = { 
      switch tag { 
      case 0: 
       return "title0" 
      default: 
       return "DefaultTitle" 
      } 
     }->String 

私は、これは間違っていることを知っているが、それを行うにはどのような方法がありますか?

私はAppleのマニュアルとインターネットで長い間探していましたが、何も見つかりませんでした。

+0

メモとして。あなたは本当に 'UIView'の' tag'プロパティを使わないでください。これを使用するのは本当に非常に悪い習慣です。 'tag'を使わないで、いつもより良い方法があります。 – Fogmeister

答えて

4

はこれを試してみてください:

lblTitle.text = { 
      switch tag { 
      case 0: 
       return "title0" 
      default: 
       return "DefaultTitle" 
      } 
     }() 

はただ、これに追加したいです。

ます。また、この方法の変数を作成することができますが、あなたは、このようなタイプの情報を追加する必要があります...

// If you don't provide type then the closure is ambiguous 
let someLabel: UILabel = { 
    let l = UILabel() 
    l.font = .systemFont(ofSize: 20) 
    l.textColor = .red 
    l.text = "Hello, world!" 
    return l 
}() 
+0

はい! ITです これ以外のすべてを試しました ありがとうございました! – Tayo119

+0

あなたのために働いた場合、回答を受け入れることを検討してください。 – PGDev

2

あなたは、タグ変数のための唯一の2つの結果を持っている場合は、次のようにコーディングできます。

lblTitle.text = tag == 0 ? "title0" : "DefaultTitle" 
関連する問題