Как мне проверить, является ли объект NSNumber нулевым или пустым?
ОК, 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"];
Какое значение имеет 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
был установлен в ноль?
[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
. Значит, он содержит произвольный номер?