Интересный факт, в target-c, если вы хотите проверить ноль / ноль
Например:
-(NSString*) getSomeStringSafeCheck
{
NSString *string = [self getSomeString];
if(string != nil){
return String;
}
return @"";
}
Быстрый способ сделать это:
-(NSString*) getSomeStringSafeCheck
{
return [self getSomeString] != nil ? [self getSomeString] : @"";
}
Тогда вы можете обновить его самым простым способом:
-(NSString*) getSomeStringSafeCheck
{
return [self getSomeString]?: @"";
}
Потому что в Objective-C:
- если объект равен nil, он вернет false как логическое значение;
- Второй параметр Ternary Operator может быть пустым, так как он вернет результат слева от '?'
Итак, допустим, вы пишете:
[self getSomeString] != nil?: @"";
второй параметр возвращает логическое значение, поэтому генерируется исключение.