2016-08-29 4 views
0

画像には、アプリのボタンが表示されます。私は、私が代わりに変数に格納するリンクを格納するための効率的な方法があるかどうかを知りたいこのSwift 2以上で列挙型文字列を利用するには?

enum Legal: String { 

    case Term = "Terms Of Service" 
    //Link: WWW.google.com/Terms 
    case Licenses = "Licenses" 
    //Link: WWW.google.com/License 
    case Privacy = "Privacy policy" 
    //Link: WWW.google.com/policy 
} 

These are my three buttons.

のようなさまざまな選択肢のために列挙しています。私は素早いメモリ管理について多くの知識を持っていませんが、ENUMSを使用してヒープにこれらのリンクを保存する必要がなくなります。列挙型または何かの関数を持つかもしれません。

現在、私はちょうどあなたが完全にそれは何が必要だ場合は、あなたの列挙型では、これらのリンクを保存し、あなたの列挙型でこれを追加することができますどのようなボタンのタイトルで合格し、それに応じて

func getLinke(legal: String) -> String { 

    if legal == Legal.Term.rawValue { 

     return "WWW.google.com/Terms" 

    } else if legal == Legal.Licenses.rawValue { 

     return "WWW.google.com/License" 

    } else if legal == Legal.Privacy.rawValue { 

     return "WWW.google.com/policy" 
    } 

    return "" 

} 

答えて

1

のようなリンクを返しています:

var link: String { 
    get { 
     switch self { 
     case Term: 
      return "WWW.google.com/Terms" 
     case Licenses: 
      return "WWW.google.com/License" 
     case Privacy: 
      return "WWW.google.com/policy" 
     } 
    } 
} 

そして、このようにそれを呼び出すことができます。

let term = Legal.Term 
let url = term.link 
+0

リトルnitpick:彼らは列挙型に「保存」されていない(つまり不可能)、ゲッターが呼び出されるたびに作成されます。 – HAS

+0

ありがとうございました。 – Tj3n

+0

これは私が現在持っているものよりも優れたパフォーマンスメモリを提供しますか?可能であれば詳細に知りたい!私は文字列を渡して、enumのrawValue機能からリンクを戻したいと思っています! – user2884707bond

関連する問題