Когда текстовые поля не заполнены, переменные NSString
будут содержать пустое строковое значение (не nil
), которое является строкой нулевой длины.
Вместо этого вы должны проверить length
строк.(Даже если переменные NSString
равны nil
, вызов length
для них вернет 0 вместо сбоя.)
Поэтому измените условие if
на:
if ((dayEntry.length > 0)
&& (monthEntry.length > 0)
&& (yearEntry.length > 0))
Если вы также хотите обработать случай, когда строки содержат только пробел (например, если пользователь вводит один пробел в текстовом поле), тогда вам сначала нужно будет обрезать пробел, а затем проверить length
:
NSCharacterSet *ws = [NSCharacterSet whitespaceCharacterSet];
if (([dayEntry stringByTrimmingCharactersInSet:ws].length > 0)
&& ([monthEntry stringByTrimmingCharactersInSet:ws].length > 0)
&& ([yearEntry stringByTrimmingCharactersInSet:ws].length > 0))