ความจริงสนุกใน Object-c ถ้าคุณต้องการตรวจสอบ null / nil ตัวอย่างเช่น:
-(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:
- ถ้าวัตถุนั้นเป็นศูนย์มันจะคืนค่าเท็จเป็นบูลีน
- พารามิเตอร์ที่สองของ Ternary Operator สามารถว่างได้เนื่องจากจะส่งคืนผลลัพธ์ทางด้านซ้ายของ '?'
ดังนั้นสมมติว่าคุณเขียน:
[self getSomeString] != nil?: @"";
พารามิเตอร์ตัวที่สองส่งคืนค่าบูลีนดังนั้นจึงมีข้อผิดพลาดเกิดขึ้น