我有一个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:@""]

希望现在清除。

08-26 14:53