我有一组文本字段。我正在使用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 == "";
这本质上就是我想要做的。我一直在努力寻找在线提到的那种东西。
答案 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 enumeration与NSArray
一起使用。因此你的循环可能如下所示:
for( UITextField * field in array ){
if( [field.text isEqualToString:@""] ){
// Do stuff
}
}