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
.