0

テキストフィールドのテキストがxmlファイルに存在するかどうかを(ボタンを押すだけで)確認する方法を見つける必要があります。

xmlファイルを配列としてロードすると、forループを使用して、配列と同じ結果になるかどうかを確認できると思いました。

forループはまったく実用的ではありませんが、この種の問題のコードをどのように記述できるか説明していただけますか?

オブジェクトが配列全体に存在しない場合は、アラートを表示したい

ありがとう

- (void)viewDidLoad
  {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

cose = [[NSArray alloc] initWithObjects:@"giovanni",@"giulio",@"ciccio",@"panzo", nil];

 }

- (void)didReceiveMemoryWarning
  {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

  -(IBAction)prova {

for (NSString *myElement in cose) {
    if ([myElement isEqualToString:textfield1.text]) {
        label1.text = textfield1.text;

    }
    else {

        UIAlertView *alertCellulare = [[UIAlertView alloc] initWithTitle:@"Attenzione!"       message:@"connessione assente" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];

        [alertCellulare show];
    }
}

}
4

2 に答える 2

2

For-Inループ(高速列挙)を使用してみませんか?

このようなもの:

for (NSString *myElement in myArray) {
    if ([myElement isEqualToString:myTextField.text]) {
        // Do something
    }
}
于 2013-02-09T13:21:11.337 に答える
2

高速列挙の場合:

-(IBAction)prova 
{
    BOOL present = NO;
    for (NSString *myElement in cose) {
        if ([myElement isEqualToString:textfield1.text]) {
            label1.text = textfield1.text;
            present = YES;
            break;
        }
    }

    if (!present){
        UIAlertView *alertCellulare = [[UIAlertView alloc] initWithTitle:@"Attenzione!"       message:@"connessione assente" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
        [alertCellulare show];
    }
}

ブロックベースの列挙

-(IBAction)prova 
{
    __block BOOL present = NO;
    [cose enumerateObjectsUsingBlock:^(NSString *name, NSUInteger idx, BOOL *stop){

        if ([name isEqualToString:textfield1.text]) {
            label1.text = textfield1.text;
            present = YES;
            *stop = YES;
        }

     }];

    if (!present){
        UIAlertView *alertCellulare = [[UIAlertView alloc] initWithTitle:@"Attenzione!"       message:@"connessione assente" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
        [alertCellulare show];
    }
}
于 2013-02-09T14:05:16.100 に答える