Поскольку метод compare
возвращает тип NSComparisonResult
, который определяется как
enum _NSComparisonResult {NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending};
typedef NSInteger NSComparisonResult;
Если строка одинакова, она вернет NSOrderedSame
со значением NSInteger
0
.
Таким образом, следующая строка фактически означает ...
if (![tempPhone compare:@"<null>"]) // `tempPhone` is equals to `@"<null>"`
или в более понятном объяснении, если значение tempPhone
равно @"<null>"
.
Вы должны написать это как
if ([tempPhone compare:@"<null>"] != NSOrderedSame)
или
if (![tempPhone isEqualString:@"<null>"])