以下代码是直接在工程中验证的,所以可以直接粘贴到工程中查看运行结果。
关于null的用法还不是太明确,欢迎交流。
//******************nil Nil null NSNull**************
NSDictionary* dic = @{@"key":@"value"};
NSString* string = dic[@"key2"];
int i = (int)dic[@"key2"];
//return : (string:(null),int:0) int 类型的nil 是 0
NSLog(@"string:%@,int:%d",string,i);
//Nil 一个类的空指针 nil一个实例或变量的空指针 null可以看做是基本数据类型为空
if (string == Nil && string == nil) {//执行
NSLog(@"nil,Nil");
}
string = nil;
//给nil 发消息不会crash
[string substringFromIndex:0];
NSLog(@"string == nil 后:%@",string);
if (i == 0 ) {//执行 i == nil 是错误的语法
NSLog(@"0");
}
//NSNull 通常作为占位符
NSObject* obj = [NSNull null];
NSArray *array = [NSArray arrayWithObjects:@"One", @"TWO", obj,@"three",nil];
NSLog(@"arr object:%@",array);
for (id subArray in array) {
if (subArray != [NSNull null]) {
NSLog(@"arr object2:%@",subArray);
}
}