C-способ выполнения встроенных условных выражений:
[obj someFunc:(str ? str : @"")];
В просторечии он называется «троичным оператором» (стандарт C называет его «условным оператором»).Он используется как:
condition ? true-expression : false-expression
Если условие ненулевое, true-expression
оценивается как результат оператора, в противном случае false-expression
оценивается как результат.