проверить, пуст ли NSNumber

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

18
задан testing 15 September 2010 в 15:21
поделиться

0 ответов