2017-12-16 17 views
-3

私の現在の問題は次のとおりです。約500の異なる文字列を保存するだけです。データを保存する最良の方法

私の質問は、これを行うための最善の方法は何ですか?

すべての文字列は、後で読み込まれると考えられます。アイデアは、ユーザーが前の入力に応じて、1つのラベルがこれらの文字列のすべてを表示できるということです。

実際に関数を500回呼び出すか、if文を500回書く必要がありますか? さらに、このデータを500回別々に保存する必要がありますか?その場合、どの方法を使用するのが最適ですか?

+1

が必要な場合があります一度文字列ですか? – matt

答えて

0

入力から独立して500文字列すべてをロードする場合は、単に文字列の配列を格納するだけです。 一方、入力に基づいて500文字列から特定の文字列を選択する場合は、500個のキーと値のペアを持つ辞書を格納できます。キーは予​​想される入力となり、値はそれぞれの文字列になります。これにより、実行時に目的の文字列が得られます。

+0

さて、もしそれらをすべてアレイに保存すれば、私はそれらを別々に呼び出す必要がありますか? Withとは500種類のコールとif文につながりますか、間違っていますか? –

+0

なぜif文が必要ですか?実行時に入力テキストに応じて500文字列のうちの1つを取得する必要がありますか?はいの場合は、辞書を使用しないでください。 文字列の選択が入力に依存しない場合、配列の単純なforループを使用してすべての文字列を簡単に印刷できます。 –

0

ラベルのタグ(整数)プロパティを使用して識別できます。文字列を配列に順番に格納します。

文字列をロードするには、aサイクルのみが必要です。サイクルでは、現在の配列項目のインデックスは、指定されたラベルのタグと同じです。

また、別途ロードする場合は、原理は同じです。配列の項目のインデックスは、同じタグ値を持つラベルに対応しています。

の1つの配列を保存しないのはなぜあなたはそのタグのラベル

この関数は、箱から出して動作しない場合がありますが、あなたのアイデアを得るバック与えヘルパーメソッド:)

func label(ForTag tag: Int) -> UILabel { 
    for view in self.subViews { 
     if view.isKindOf(UILabel.self) { 
      if view.tag == tag { 
       return view 
      } 
     } 
    } 
} 
関連する問題