iOS优秀开发文章

iOS - nil、Nil、NULL、NSNull介绍和开发中对

2019-03-26  本文已影响0人  ShIwEn9

在开发中我们会经常遇到得数据为空的判断。
比如我们在获取地址省市区信息的时候,有时会因为某些市没有区的情况导致返回空<null>,如果这样进行网络请求会出现app奔溃的情况,所以这时候我们就要进行数据判断之后在去发送请求。

一、首先我们先对iOS开发中遇到的空值进行介绍:

二、对JSON返回的<null>进行判断

if([result isEqual:[NSNull null]]) {
    //result是从服务器返回的数据
    //在这里进行操作
}

三、对(null)的判断

if(result == nil) {
   //在这里进行操作
}

四、基本数据类型的空值判断

  1、string == nil;
  2、[string isEqualToString:@""];
  1、number == nil;
  2、[number isEqualToNumber:@0];
  1、array == nil;
  2、array.count = 0;
  1、[dictionary isEqual:[NSNull null]];
  2、dictionary.count = 0;
if(!class) return;

抽取方法:

  - (NSString *) changeForNull:(NSString *)change{
    
    NSString *temp = [NSString stringWithFormat:@"%@", change];
    
    if ([temp isEqualToString:@"<null>"] || [temp isEqualToString:@"(null)"] || [temp isEqualToString:@""]) {
        temp = @"";
    }
    
    return temp;
    
}

宏定义:

/// 是否为空对象
#define kObjectIsNil(__object) ((nil == __object) || [__object isKindOfClass:NSNull.class])
#define kObjectIsNotNil(__object) (!kObjectIsNil(__object))
/// 字符串为空
#define kStringIsEmpty(__string) (kObjectIsNil(__string) || (__string.length == 0))
/// 字符串不为空
#define kStringIsNotEmpty(__string) (!kStringIsEmpty(__string))
上一篇下一篇

猜你喜欢

热点阅读