Как проверить, является ли объект NSNumber нулевым или пустым?
OK nil легко:
NSNumber *myNumber;
if (myNumber == nil)
doSomething
Но если объект был создан, но в нем нет значения, потому что присвоение не удалось, как я могу проверить это? Использовать что-то вроде этого?
if ([myNumber intValue]==0)
doSomething
Существует ли общий метод тестирования объектов на пустоте, например, для NSString (см. post)?
Пример 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
было установлено равным 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
. Таким образом, оно содержит произвольное число?