0

これは私が持っているものです:

while(wordList){                  //wordlist is instance of NSArray containing NSStrings
    word.text = [wordList objectAtIndex:x]; //word is instance of UILabel

    //LOOKING TO PLACE WAIT CODE HERE TO WAIT FOR "DID END ON EXIT"

    input = inputBox.text; //input is instance of UITextField

    [self compare:input andb:word.text]; //compare is an instance method to compare the two strings
    x++;
}

私は初心者です。誰かが私を助けてくれれば、それは素晴らしいことです。

ベスト... SL

4

2 に答える 2

0

あなたが求めているアプローチはうまくいきません。アプリがメソッドの途中で実行を一時停止した場合、一時停止が解除される原因は何ですか?

ユーザーがループの途中でテキストを入力することはありません。ループの実行が開始される前に、ユーザーがテキストを入力している必要があります。@Imirak が提案したループを含むメソッドをトリガーするか、ボタンを押すなどの他のユーザー操作からトリガーします。そうすれば、ユーザーが既にテキストを入力したことがわかり、記述したコードが期待どおりに機能するはずです。

compare:andb:ただし、1 つ注意してください: 表示したコードは、メソッドからの戻り値をチェックしません。メソッドが何をすることを期待しているかについて、それが理にかなっているかどうかを確認するのに十分な情報を実際に提供していません。

wordListまた、あなたのループ制御ロジックは正しくありませんnil. whileループを記述する代わりに、高速な列挙構文を使用することを検討してください。次に例を示します。

for (UILabel *currLabel in wordList)
{
    // It appears as though this may be the comparison you want to do
    // but there's not enough context in your question to be sure.
    //
    if ([inputBox.text isEqualToString:currLabel.text])
    {
        // Do something here. Again, it's not clear what you're trying to do.   
    }
}
于 2012-07-22T17:21:23.033 に答える
0

これはあなたが探しているものですか?:

[yourTextField addTarget:self 
                action:@selector(yourMethod:)
                forControlEvents:UIControlEventEditingDidEndOnExit];

編集

while ループを中断して、ユーザーが次にヒットしたときに別のメソッドを呼び出してみませんか? 一時停止して他の方法をトリガーする必要はありません。

于 2012-07-22T16:43:13.560 に答える