NULL,Nil,nil,NSNull的区别

339 阅读1分钟

NSMutableDictionary *dic = [NSMutableDictionary new];

dic setValue:<#(nullable id)#> forKey:<#(nonnull NSString *)#>

dic setObject:<#(nonnull id)#> forKey:<#(nonnull id)#>

[NSNull null] 空对象

[dic setObject:[NSNull null] forKey:@(1)];

NULL空指针

int *pointerToInt = NULL;

char *pointerToChar = NULL;

Nil 空类

Class someClass = Nil;

Nil id类型的空对象

[dic setValue:nil forKey:@"nil"];

对于服务端返回null的情况

法一: if ([str isEqual:[NSNull null]]) {

}
if ([str isKindOfClass:[NSNull class]]) {
    
}

法二:

利用AFN中的AFJSONResponseSerializer的一个属性移除null值 removesKeysWithNullValues = YES

法三: 将null替换为@“”;