ios学习笔记之nil、NULL和NSNull
nil用来给对象赋值(oc的任何对象都属于id类型),NULL则给任何指正赋值,NULL和nil不能互换,nil用于类指针赋值(在oc中类是一个对象,是类的meta-class的实例),而NSNull则用于集合操作,虽然它们表示的都是空值,但使用场合完全不同,所以在编码时要严格按照变量类型来赋值,将正确的空值赋给正确的类型,使代码抑郁阅读和维护,也不易引起错误。
//判断对象不为空
if (object) {}
if (object == nil) {}
NSArray *pageNames = [[NSArrayalloc] initWithObjects:@"Document", @"Advanced", @"Statistics", nil ];
UIViewController *controller = [NSArray objectAtIndex:i]; if ((NsNull *)controller == [NSNull null]) {}
NSString *userId = [NSDictionaryobjectForKey:@"key"]; if (userId == [NSNullnull]) {}
person = nil; [person castBallot]; NSLog(@"person = %@", person);
NSDecimalNumber *number = nil; NSLog(@"number = %.2f", [number doubleValue]);
NSString *item = [NSArray objectAtIndex:i]; if ([item isEqualToString:@"test"]) { }
id someObj = [[Objectalloc] init]; ... [someObj release]; ... if (someObj) { }