我该如何检查 NSNumber 对象是否为空或 nil?
好的,判断 nil 很简单:
NSNumber *myNumber;
if (myNumber == nil)
doSomething
但是,如果对象已经创建,但因为赋值失败而没有值,我该如何检查这一点?使用类似这样的东西吗?
if ([myNumber intValue]==0)
doSomething
是否有一种通用方法可以像NSString那样测试对象的空值(参见此文章)?
示例1
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *emptyNumber = [dict objectForKey:@"emptyValue"];
< p >emptyNumber
包含哪个值?我该如何检查emptyNumber
是否为空?
示例2
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSString *myString = [dict objectForKey:@"emptyValue"];
if (myString == nil || [myString length] == 0)
// got an empty value
NSNumber *emptyNumber=nil;
如果在将emptyNumber
设置为nil
后我还使用它会发生什么?
[emptyNumber intValue]
我会得到零吗?
示例3
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *myEmptyValue = [dict objectForKey:@"emptyValue"];
if (myEmptyValue == nil)
// NSLog is never called
NSLog(@"It is empty!");
使用这种方式,NSLog永远不会被调用。myEmptyValue
不是 nil
也不是 NSNull
。那么它包含一个任意数字?