โซลูชันมาโคร (2020)
นี่คือแมโครที่ฉันใช้สำหรับสตริงที่ปลอดภัยแทนการรับสตริง " (null) " ในUILabelตัวอย่างเช่น:
#define SafeString(STRING) ([STRING length] == 0 ? @"" : STRING)
สมมติว่าคุณมีคลาสสมาชิกและชื่อคุณสมบัติและชื่อเป็นศูนย์:
NSLog(@"%@", member.name); // prints (null) on UILabel
ด้วยมาโคร:
NSLog(@"%@", SafeString(member.name)); // prints empty string on UILabel
ดีและสะอาด😊
โซลูชั่นเสริม (2020)
หากคุณต้องการตรวจสอบไม่มีศูนย์และสตริงว่างเปล่าในโครงการของคุณคุณสามารถใช้ส่วนขยายของฉันด้านล่าง:
NSString + Extension.h
///
/// Checks if giving String is an empty string or a nil object or a Null.
/// @param string string value to check.
///
+ (BOOL)isNullOrEmpty:(NSString*)string;
NSString + Extension.m
+ (BOOL)isNullOrEmpty:(NSString*)string {
if (string) { // is not Nil
NSRange range = [string rangeOfString:string];
BOOL isEmpty = (range.length <= 0 || [string isEqualToString:@" "]);
BOOL isNull = string == (id)[NSNull null];
return (isNull || isEmpty);
}
return YES;
}
ตัวอย่างการใช้งาน
if (![NSString isNullOrEmpty:someTitle]) {
// You can safely use on a Label or even add in an Array for example. Remember: Arrays don't like the nil values!
}