博客> nil , Nil , NULL, [NSNull null] , @""
nil , Nil , NULL, [NSNull null] , @""
2019-07-17 00:46 评论:0 阅读:1432 1498893132
ios nil NULL [NSNull null] @""
NSString*str1 = nil;

NSString*str2 = Nil;

NSString*str3 = NULL;

NSNull*str4 = [NSNull null];  

NSString*str5 = @"";

NSLog(@" \r str1:%p\r str2:%p\r str3:%p\r str4:%p\r str5:%p\r", nil, NULL, Nil, [NSNull null], @"");

NSLog(@"\r str1:%@\r str2:%@\r str3:%@\r str4:%@\r str5:%@\r", str1, str2, str3, str4, str5);

结果: 2016-07-09 09:42:00.124 Target[674:c07]

str1:0x0

str2:0x0

str3:0x0

str4:0x1dc2678

str5:0x46f4

2016-07-09 09:42:04.717 Target[674:c07]

1).描述

str1:(null)

str2:(null)

str3:(null)

str4:

str5:

2).描述

Printing description of str1:

Printing description of str2: Printing description of str3: Printing description of str4: Printing description of str5: <object returned empty description> 2种方式打印出来的描述不太一样 可以看到 nil,Nil, NULL, 本质上是相同的 都指向0X0 地址 而 【NSNULL null】 和 @“” 应该是在常量存储区的。占用着固定地址。 总结:NSString 类型去接受一个nsnull类型的数据,很多NSString的方法都不能使用,如下: str接收了一个nsnull [str isEqual: @""] //程序崩溃哭 不能识别isEqual方法 str.length >0 //程序又崩溃大哭不能识别length属性 而且,nsnull类型都无法和 @“” 、 nil 、Nil 、NULL 比较
收藏
1
sina weixin mail 回到顶部