nil,Nil,NULL,NSNull,kCFNull 的区别

  • nil Objective-C实例对象指针空值: NSSring *str = nil;
#define nil ((void*)0)复制代码
  • Nil 类对象指针空值: Class class = Nil;
#define nil ((void*)0)复制代码
  • NULL C指针空值: char *p = NULL;
#define NULL ((void*)0)复制代码
  • NSNull 是一个Objective-C继承NSObject的类,多用于数组字典里面的空值
@interface NSNull : NSObject <NSCopying, NSSecureCoding>
+ (NSNull *)null;
@end复制代码
  • kCFNull 是NSNull的单例 [NSNull null]
typedef const struct CF_BRIDGED_TYPE(NSNull) __CFNull * CFNullRef;
const CFNullRef kCFNull;    // the singleton null instance复制代码