2016-10-02 1 views
-1

これはswift 2.0で配列されているとします: {"8文字"、 "6文字"、 "9文字" "ジョン"、 "フレッドリック"}。 アプリケーションの実行中に、これらの「X文字」が名前に置き換えられます。配列に「8文字」のような数字で始まる項目がまだあるかどうかを確認するにはどうすればよいですか?私はすべてのそれらの "Xの手紙"が名前に置き換えられたときに、アプリケーションのレベル2をロードしたい。 ありがとうございます。配列に項目が含まれているかどうかを確認する方法Swiftの番号(iOS 9)

+0

文字列を調べることができますが、より洗練されたアプローチは、 "型"を示すブール値または列挙型の構造体の配列を持つことです。次に、配列要素を変更するときに、適切に型を設定することができます – Paulw11

+0

Paulw11ありがとうございます。しかし、コード全体を書き換えない限り、structロジックを実装する方法はありません。上記の配列は、ビューにあるUILabelからその値を受け取り、そのラベルはその値をテキストファイルから取得します。各テキストファイルには、ユーザーが回答を見つけたときにユーザーが推測する必要がある7つの質問があります。例:Oliver Twist次に「11 Letters」が「Oliver Twist」に置き換えられます。ユーザーが7つの答えをすべて返すと、配列にX文字が存在しなくなります。アプリはレベル2に移動してさらに7つの質問を表示できます。 –

+0

後でリファクタリングする方が、後で問題を引き起こす設計選択肢が貧弱になりすぎてしまいます。あなたのUILabelはデータのソースであってはなりません。あなたのデータモデルへのビューでなければなりません。 – Paulw11

答えて

0

は、私がここで私はそれを処理する方法をだ、関連付けられた値でenumを使用します。

enum Whatever { 
    case number(Int) 
    case value(String) 
} 

let myArray: [Whatever] = [.number(8), .number(6), .number(9), .value("John"), .value("Frederick")] 

myArray.forEach { 
    switch $0 { 
    case .number(let numberOfLetters): 
     // Do something 
     break 
    case .value(let value): 
     // Do something 
     break 
    } 
} 

この方法では、あなたがのIntのためのチェック文字列を解析しようとしていません。ご質問がある場合はお知らせください。お役に立てれば。

+0

あなたの時間と協力のために多くのおかげでpob21!しかし、問題は、このアプリは10レベルがあります。各レベルは配列内で異なる単語を持つので、1つの配列の文字数は5,9,8,4,3となり、もう1つは7,9,10,4,8などとなります。私はそれらのすべてを予測したり、言及することはできますか? –

+0

var clues = answersLabel.text!.componentsSeparatedByString( "\ n") –

+0

手がかり[answerPosition] = currentAnswer.text! –

関連する問題