美文网首页iOS常用
iOS开发对象判空

iOS开发对象判空

作者: Silence_xl | 来源:发表于2021-07-29 11:17 被阅读0次

iOS 开发之对象为空的判断(nil、null)详解

在开发中,会遇到很多空的情况,有时候取得对象(null),还有时候会得到<null>的情况,我们需要判断是否为空,进行return;

  id result;
// 针对(null)这种情况
  if(result == nil) return;
// 针对<null>的情况
  if([result isEqual:[NSNull null]]) return;
前者的判断,我们用的比较频繁,但后者,用的比较少,一般赋值给nil之外的其他空值;

基本数据类型的空值判断
对于类似于NSString类型的数据进行空值判断
NSString *string;
string == nil;
[string isEqualToString:@""];

对于类似于NSNumber类型的数据进行空值判断

NSNumber *number;
number == nil;
[number isEqualToNumber:@0]

对于类似于NSArray类型的数据进行空值判断

NSArray *array;
array == nil;
array.count = 0;

对于类似于NSDictionary类型的数据进行空值判断

NSDictionary *dictionary;
[dictionary isEqual:[NSNull null]];
dictionary.count = 0;

对于对象类型的数据进行空值判断

可以使用 !(非) 来判断
if(!class) return;
判断对象是否为空(nil、NSNil、@""、@(0) 以上4种)
@interface NSObject (XL)

/**
 *  判断对象是否为空
 *  常见的:nil、NSNil、@""、@(0) 以上4种返回YES
 *  如果需要判断字典与数组,可以自行添加
 *  @return YES 为空  NO 为实例对象
 */
+ (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

相关文章

网友评论

    本文标题:iOS开发对象判空

    本文链接:https://www.haomeiwen.com/subject/qrmxvltx.html