iOS 中的几个Null

在iOS开发中通常碰到一个问题,就是空。比如说空字符串。
当我们在处理或者判断一个对象是不是为空的时候,该如何处理呢。

nil
对于这个预定义的标识符,#define nil (void*)0
当你使用%p转换说明符去打印nil的地址时可以得到 0x0

Null
Null类是Cocoa提供的一个代表空的类,在很多集合类比如NSArray,NSSet等不能存储nil值,我们可以使用Null类的对象来替代。
[Null null];发送这个消息产生唯一的空对象,来满足需求。

@""
关于这个空字符串,把它理解成一个长度为0的字符串对象即可。


封装一个简单的判断字符串是否为空的方法。
应用场景:
在做网络请求时,服务器端有可能返回空的字符串,在终端打印出来有时显示null,(null),或者,

这是由于服务器端使用不同的语言所导致。我们不能简单的使用==来与Null的对象进行比较。
此外如果我们想过滤掉@" "或者@" "这种空格型字符串,用下面的这个封装方法就可以解决了。
//

  • (BOOL)isNotEmpty{
    if (self == nil) {
    return NO;
    }

    if([self isKindOfClass:[NSNull class]]){
    return NO;
    }

    if (self.length == 0) {
    return NO;
    }

    if (self.length != 0) {
    return [self stringByReplacingOccurrencesOfString:@" " withString:@""].length != 0;
    }

    return YES;
    }

你可能感兴趣的:(iOS 中的几个Null)