NSInteger!= Nil

Как проверить, что NSInteger действителен?

NSInteger previousScore = [[self score] integerValue];
    if (previousScore != nil) {
        //do something
    }

Ответы

Ответ 1

Если вы хотите проверить правильность кода, вы бы сделали что-то вроде:

NSNumber *previousScore = [self score];

if ( previousScore != nil ) {
  NSInteger previousScoreValue = [previousScore integerValue];
  // do something
}

Это работает, когда вы возвращаете объект, а не примитивное значение.

Ответ 2

NSInteger не является объектом. Это просто примитивный примитив int. Поэтому он никогда не будет nil. Просто относитесь к нему так же, как если бы вы использовали int прямо вверх.

Edit: Чтобы изложить комментарий Cesar, в 64-битных системах NSInteger на самом деле есть long, а в 32-битных системах - int.