iOS 開(kāi)發(fā)之對(duì)象為空的判斷(nil、null)詳解
在開(kāi)發(fā)中,會(huì)遇到很多空的情況,有時(shí)候取得對(duì)象(null),還有時(shí)候會(huì)得到<null>的情況,我們需要判斷是否為空,進(jìn)行return经柴;
id result;
// 針對(duì)(null)這種情況
if(result == nil) return;
// 針對(duì)<null>的情況
if([result isEqual:[NSNull null]]) return;
前者的判斷,我們用的比較頻繁墩朦,但后者坯认,用的比較少,一般賦值給nil之外的其他空值氓涣;
基本數(shù)據(jù)類型的空值判斷
對(duì)于類似于NSString類型的數(shù)據(jù)進(jìn)行空值判斷
NSString *string;
string == nil;
[string isEqualToString:@""];
對(duì)于類似于NSNumber類型的數(shù)據(jù)進(jìn)行空值判斷
NSNumber *number;
number == nil;
[number isEqualToNumber:@0]
對(duì)于類似于NSArray類型的數(shù)據(jù)進(jìn)行空值判斷
NSArray *array;
array == nil;
array.count = 0;
對(duì)于類似于NSDictionary類型的數(shù)據(jù)進(jìn)行空值判斷
NSDictionary *dictionary;
[dictionary isEqual:[NSNull null]];
dictionary.count = 0;
對(duì)于對(duì)象類型的數(shù)據(jù)進(jìn)行空值判斷
可以使用 !(非) 來(lái)判斷
if(牛哺!class) return;
判斷對(duì)象是否為空(nil、NSNil劳吠、@""引润、@(0) 以上4種)
@interface NSObject (XL)
/**
* 判斷對(duì)象是否為空
* 常見(jiàn)的:nil、NSNil痒玩、@""淳附、@(0) 以上4種返回YES
* 如果需要判斷字典與數(shù)組议慰,可以自行添加
* @return YES 為空 NO 為實(shí)例對(duì)象
*/
+ (BOOL)isEmpty:(id)object;
@end
@implementation NSObject (XL)
+ (BOOL)isEmpty:(id)object{
if (object == nil || [object isEqual:[NSNull null]]) {
return YES;
} else if ([object isKindOfClass:[NSString class]]) {
return [object isEqualToString:@""];
} else if ([object isKindOfClass:[NSNumber class]]) {
return [object isEqualToNumber:@(0)];
}
return NO;
}
@end