Здесь я вижу несколько моментов
Первое - если ваша userFullName
переменная экземпляра равна NSString*
, тогда достаточно простого сравнения с nil
:
if (thisPhoto.userFullName)
Если,конечно, вы явно задаете для него значение [NSNull null]
, что затем требует написанного вами условия.
Второе - сравнение строк выполняется методом isEqualToString:
, поэтому второе условие должно быть переписано как:
if ([thisPhoto.userFullName isEqualToString:@""]) {
...
}
В-третьих, есть логический недостаток. Если ваш userFullName
равен пустой строке (@""
), код все равно попадет в первую ветвь.Т.е. пустая строка (@""
) не равна [NSNull null]
или простому нулю.Следовательно, вы должны писать в ветки - один для обработки пустой строки и nil, другой для нормального значения.Так что с небольшим рефакторингом ваш код становится таким:
thisUserNameLabel.text = [NSString stringWithFormat:@"%@",thisPhoto.userFullName];
if (!thisPhoto.userFullName || [thisPhoto.userFullName isEqualToString:@""]) {
// do the empty string dance in case of empty userFullName.
}