0

コードを使用して、単語が配列に含まれているかどうかを確認しています。単語を送信したい場合は、コードを持っています。そうでない場合は、画面をポップアップさせたいです。これですべてが機能します。唯一のことは、画面が 2 回ポップアップすることです。これは、配列に 2 つの単語があるためです。これをもう少し詳しく説明するコードを次に示します。

NSArray *searchContacts = [NSArray arrayWithObjects:
                           @"CADEAU",
                           @"KADERZ",nil];
NSString *myContact = labelsText.text;

for (NSString *contact in searchContacts) {
    if ([contact isEqualToString:myContact]) {

ここに私の言葉、この場合は CADEAU & KADERZ を入れます。これらの単語の1つをlabelsText.textに入れると、まさに私が望むことを行います. しかし、ラベルの text.text ワードが CADEAU または KADERZ でない場合の else ステートメントでは、画面がポップアップします。

else {
 UIAlertView *alert = [[UIAlertView alloc]

この画面は 2 回表示されるので、[却下] を 2 回押す必要があります。これを修正するには、[却下] を 1 回押さなければならないようにするにはどうすればよいでしょうか。

4

4 に答える 4

5

を使用する方が効率的NSSetですが、 を使用する場合でも、コレクションを自分でループする代わりにNSArray呼び出すことができます。containsObject:

if (![searchContacts containsObject:myContact]) {
   //show alert...
}
于 2012-05-10T22:00:26.240 に答える
3

break;アラートを表示するコードの後に​​次のように入力します。

for (NSString *contact in searchContacts) {
    if ([contact isEqualToString:myContact]) {
        // do something
    } else { 
        // show screen
        break;
    }
}

これにより、ループから「抜け出します」。

于 2012-05-10T21:58:55.513 に答える
0

UIAlertViewの後に休憩を使用します。

例えば:

for (NSString *contact in searchContacts) {
        if ([contact isEqualToString:myContact]) {
            //do what you want to do      
        }
        else{
            UIAlertView *alert = [[UIAlertView alloc] init];
            [alert show];
            break; //leave for()
        }
    }

またはそれを使用してください:

searchContacts enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    if ([contact isEqualToString:myContact]) {
        //do what you want to do      
    }
    else{
        UIAlertView *alert = [[UIAlertView alloc] init];
        [alert show];

        *stop = YES; //stop enumeration
    }
}
于 2012-05-10T22:03:25.427 に答える
0

私はあなたがこのようなものが欲しいと思います:

    BOOL contactFound = NO;
    for (NSString *contact in array)
    {
        if ([contact isEqualToString:myContact])
        {
            contactFound = YES;
            break;
        }
    }

    if (!contactFound)
        UIAlertView *alert = [[UIAlertView alloc]...
于 2012-05-10T22:04:17.850 に答える