按索引访问NSArray中的textfield.text

时间:2015-07-22 22:44:39

标签: ios objective-c cocoa-touch uitextfield nsarray

我有一组文本字段。我正在使用for循环遍历数组并检查文本字段的text属性是否为空。

NSArray *arrayOfTextFields = [NSArray arrayWithObjects: _nameTextfield, _emailTextfield, _phoneTextfield, _termTextfield, _schoolTextfield, _graduationTextfield, _gpaTextfield, _degreeTextfield, _interestTextfield, _groupTextfield, _appliedTextfield, nil];

for (int i = 0; i < [arrayOfLabels count]; i++) {

    if ([[arrayOfTextFields objectAtIndex:i] isEqualToString:@""]) {
        NSLog(@"if statement ran");
    }
}

显然if语句没有运行,因为它正在将文本字段与字符串进行比较。我无法弄清楚如何在Objective-C中进行语法分析。这样的东西在C ++或Java中会非常容易,它可能看起来像arrayOfTextFields[i].text == "";这本质上就是我想要做的。我一直在努力寻找在线提到的那种东西。

2 个答案:

答案 0 :(得分:0)

NSArray *arrayOfTextFields = [NSArray array];//set your labels here

    for (UITextField *textField in arrayOfTextFields) {

        if ([textField.text isEqualToString:@""]) {
            NSLog(@"if statement ran");
        }
    }

或者你也可以试试..

NSArray *arrayOfTextFields = [NSArray array];//set your labels here

    for (int i = 0; i < [arrayOfTextFields count]; i++) {

        if ([((UITextField*)[arrayOfTextFields objectAtIndex:i]).text isEqualToString:@""]) {
            NSLog(@"if statement ran");
        }
    }

答案 1 :(得分:0)

文本字段中的字符串与文本字段本身不同。您必须访问该字段的text属性才能将其与另一个字符串进行比较。语法与您为C ++或Java引用的语法完全相同:arrayOfTextFields[i].text

您也可以使用[[arrayOfTextFields objectAtIndex:i] text]。这两者在效果上是完全等效的(在实现中存在一些不重要的差异)。

您通常还应将fast enumerationNSArray一起使用。因此你的循环可能如下所示:

for( UITextField * field in array ){
    if( [field.text isEqualToString:@""] ){
        // Do stuff
    }
}