我有一个uitextfield,当它初始化并且没有输入任何值时,我发现uitextfield的值既不为null也不为nil。
NSString *notes = (notesField.text)?(notesField.text):@"hello";
NSLog(@"notes: %@",notes);
它不返回任何笔记
NSString *notes1;
//or use legnth
if ([notesField.text isEqual:@""]) {
notes1=@"hello";
NSLog(@"empty textfield: %@",notes1);
//then it returns "hello"
}
else
{
notes1=notesField.text;
NSLog(@"not empty textfield: %@",notes1);
}
这是为什么?我还能使用三元运算符吗?
像这样 ?
NSString *notes = ([notesField.text length])?(notesField.text):@"hello";
最佳答案
您可以使用
NSString *notes = ([notesField.text length])?(notesField.text):@"hello";
要么
NSString *notes = ([notesField.text length]==0)?@"hello":(notesField.text);
要么
NSString *notes = ([notesField.text isEqualToString:@""])?@"hello":(notesField.text);
对于
UITextField
没有条目的情况(初始大小写),请使用第二个或第三个选项,这会更好。 NSString *notes = ([notesField.text length])?@"hello":(notesField.text);
将无法正常工作,因为即使文本字段中没有文本,notesField.text
也将是TRUE
。因此,您应该使用notesField.text.length
或[notesField.text isEqualToString:@""]
。希望现在清除。